Procesor Atmel Mega8 zasilamy 3V
Taktowany 8MHz z wewnętrznego zegara procesora
Potrzebuje odmierzać równe impulsy co 1 sekundę i chciałem wykorzystać do tego celu Timer0. I tu pojawia mi się problem. W obrębie pętli Do Loop wszystko działa poprawnie (led gaśnie i zapala się na okres 5 sekund). Jednak wygląda tak jakby przerwania nie działały i nie wiem czemu. Zastanawiam się czy przypadkiem powodem problemu nie jest sposób taktowania procesora bo podobny program w innym układzie z prcesorem taktowanym z kwarcu działa poprawnie
Kod: Zaznacz cały
$regfile = "m8def.dat"                                      ' typ procesora
Config Pind.5 = Output                                      'led zielony
Config Pind.6 = Output                                      'led czerwony
Set Portd.5                                                 'led zielony
Set Portd.6                                                 'led czerwony
Dim X As Byte                                               'zmienna do obliczen
Dim Tl As Byte                                              'licznik Timer0
Config Timer0 = Timer , Prescale = 256                      'konfigoracja timera
On Timer0 Odmierz
Enable Interrupts
Enable Timer0
Load Timer0 = 250
Start Timer0
Do
  Toggle Portd.6
  Wait 5
Loop
'-------------------------------------------------------------------
Odmierz:
Load Timer0 = 250
Incr Tl
If Tl = 125 Then
  Tl = 0
  Toggle Pind.5
End If
Return 



