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