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