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
			 
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięLicznik w ATmega8535 i w AT90S8535 ?
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 17 gości


