Licznik na ATmega8535 a na AT90S8535

Witam Serdecznie!

Na AT90S8535 zrobiłem sobie licznik impulsów i elegancko zlicza. Zrbiłem to na dwa sposoby (poniższy kod) z wykorzystaniej jednego timera i bardziej dokładny z wykorzystaniem 2 Timerów. Najgorsze jest to że gdy wsadziłem ATmega8535 na lcd pojawia mi się zero tak jakby counter w ogóle nie zliczał impulsów. Zegar procków (7.372.800 Hz) ten sam.

Co jest nie tak ? Pomóżcie !

1) Config Timer1 = Counter , Edge = Rising Cls : Lcd "Czestosciomierz" : Wait 1 'powitanie

Do 'program główny - pętla Timer1 = 0 'zeruj licznik Start Timer1 'zacznij liczyć Wait 1 'zliczaj impulsy przez

1 sekundę Stop Timer1 'zatrzymaj zliczanie Cls 'czyść ekran Lcd "F=" ; Timer1 ; "Hz" 'wyświetl wynik Loop 'koniec pętli

2) Dim Timebase As Word , Wynik As Word : Enable Interrupts : Enable Timer0 Config Timer1 = Counter , Edge = Rising 'T/C1 - licznik impulsów Config Timer0 = Timer , Prescale = 1 ' przepełnienie co 64us On Timer0 Licz Timebase = 28800

Do 'program główny Cls : Lcd "F=" ; Wynik ; "Hz" : Waitms 100 'wyświetl wynik Loop : End 'koniec programu głównego

Licz: 'Timer0 przepełniony co 64us Decr Timebase ' zmniejsz licznik Tb If Timebase = 0 Then 'po odliczeniu 1 sekundy: Wynik = Timer1 'przepisz stan licznika do zmiennej Wynik Timer1 = 0 'wyzeruj licznik - niech liczy dalej Timebase = 28800 End If : Return 'koniec procedury obsługi przerwania

Reply to
damian
Loading thread data ...

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.