Atmega, időzítés
Auth Gábor
auth.gabor at enaplo.hu
Sun Apr 23 17:01:37 CEST 2006
Halihó!
Auth Gábor ezt írta:
> OK. Kipróbáltam, semmi... nem számol. :(
Kiírattam a TCNT1 értékének 256-od részét a PORTC-re:
===
int count=0;
while (1)
{
if (count%256==0)
{
inv_bit(PORTB,0);
PORTD=~counter;
}
int counter2=TCNT1;
PORTC=counter2/256;
count++;
}
===
Látom a LED-eken, ahogy szépen számol felfelé, eléri a maximumot, majd
nullázódik. Közben kiírom a couter értékét is (azért invertálva, mert
inverz a LED-ek kötése :), és az stabilan a counter kezdőértékét
mutatja... :(
Úgy tűnik, kerül vezérlés az alábbi részre, mivel ha 0x8000 lesz a
TCNT1 új értéke, akkor azt látom nullázás után a számláló LED-eken. De
a counter értékét nem módosítja... vajon miért?
===
char counter=0x55;
SIGNAL(SIG_OVERFLOW1)
{
TCNT1=0x8000;
counter++;
}
===
Van erre ötlet? Valami triviális hibám lehet... de hol? :)
--
http://www.enaplo.hu - Iskolai Információs Rendszer
Auth Gábor -=- FreeBSD 5.4 -=- http://bsd.lap.hu
+36-70/9400-341 -=- ICQ: 49179141 -=- Skype: authgabor
More information about the Elektro
mailing list