Witam
Staram się zrobić odliczanie na przerwaniach - jak do tej pory nie używałem jeszcze przerwań, więc proszę o wyrozumiałość za banalne pytanie.
A więc tak. Potrzebuję za pomocą Timera0 wprowadzić diodę w pulsację z częstotliwością 10Hz (to tak dla testu)
Wszystko wydaje się w miarę proste. Skonfigurować T0 i przerwanie na ten zegar.
A więc mam tak:
Analizując konfiguruję Timer0 z preskalerem 1024. Ładuję licznik wartością początkową 78. W momencie wystąpienia przerwania w podprogranie zwiększam wartość licznika Y i gdy ten osiągnie wartość 10 na 2ms zapalam diodę.
Teraz licząc to dla zastosowanego kwarcu 8MHz: 8000000/1024/78/10 daje częstotliwość 10Hz (w przyblizeniu) więc o to mi chodzi.
A przynajmniej taki podział rozumuję z helpa do Bascoma i konfiguracji timera.
Niestety moja dioda "mruga" w przybliżeniu z częstotliwością 3Hz a nie 10...
Proszę o zerknięcie mądrym okiem i ewentualną korektę mojej wiedzy na temat obliczania Timerów i ich przerwań.
A może kwarc jest jakiś trefny i przez to źle Timer jest taktowany?
MarCiu
Staram się zrobić odliczanie na przerwaniach - jak do tej pory nie używałem jeszcze przerwań, więc proszę o wyrozumiałość za banalne pytanie.
A więc tak. Potrzebuję za pomocą Timera0 wprowadzić diodę w pulsację z częstotliwością 10Hz (to tak dla testu)
Wszystko wydaje się w miarę proste. Skonfigurować T0 i przerwanie na ten zegar.
A więc mam tak:
$regfile "m8def.dat"
$crystal = 8000000
...
Config Timer0 = Timer , Prescale = 1024
Load Timer0 = 78
On Timer0 Klik
Enable Interrupts
Enable Timer0
....
Klik:
Incr Y
If Y = 10 Then
Set Portd.7
Waitms 2
Reset Portd.7
Y = 0
End If
Load Timer0 = 78
Return
Analizując konfiguruję Timer0 z preskalerem 1024. Ładuję licznik wartością początkową 78. W momencie wystąpienia przerwania w podprogranie zwiększam wartość licznika Y i gdy ten osiągnie wartość 10 na 2ms zapalam diodę.
Teraz licząc to dla zastosowanego kwarcu 8MHz: 8000000/1024/78/10 daje częstotliwość 10Hz (w przyblizeniu) więc o to mi chodzi.
A przynajmniej taki podział rozumuję z helpa do Bascoma i konfiguracji timera.
Niestety moja dioda "mruga" w przybliżeniu z częstotliwością 3Hz a nie 10...
Proszę o zerknięcie mądrym okiem i ewentualną korektę mojej wiedzy na temat obliczania Timerów i ich przerwań.
A może kwarc jest jakiś trefny i przez to źle Timer jest taktowany?
MarCiu