AVR, timer, gcc

Rosko, Peter Peter.Rosko@siemens.com
Středa Leden 25 09:56:59 CET 2006


Zdravim,
vdaka za odozvy

vsetko funguje korektne ak spolu s povolenim toho prerusenia povolim aj
takt pre timer, teda predtym ziaden overflow flag nie je nastaveny.
 v podstate som presunul riadok TCCR2 = _BV(CS22) z initu (kdesi na
zaciatku) do rutiny externeho prerusenia, kde sa ten samotny timer
startuje

SIGNAL(SIG_INTERRUPT1)
{	
	if (PIND & _BV(PD3)) //0->1
	{
		code[code_counter++] = TCNT2;
	}
	else //1->0
	{
		TCNT2 = 0;	
		TCCR2 = _BV(CS22);
		TIMSK |= _BV(TOIE2);
	}	
	
}

mam taky pocit ze chybicka bola v TIFR registri.
nastavoval som tam TOV2 do jednotky, co malo zrusit sameho seba. akosi
mi ale nie je jasne, co sa stane, ak TOV2 je nula a ja tam zapisem 1

samozrejme, detaily upresnime ked budeme mat cas :)

p.rosko

 
> 
> Zdravim,
> 
> to, co jste napsal vypada OK. Jestli mate moznost, tak to 
> zkuste odladit na
> ATmega16 s Jtagem - Atmega8 a 16 jsou kompatibilni (snad 
> 100%) - prave jsem
> ladil na ATmega16 zarizeni, ktere v realu funguje s Atmega8...
> 
> S pratelskym pozdravem
> --
> Karel Radkovsky
> www.dioda.cz
> 
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list@list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 



Další informace o konferenci Hw-list