Witam
Chciałem uzyskać pracę asynchroniczną (licznik sterowany kwarcem zegarkowym, procesor generatorem wewnętrzym).
Napisałem prosty program (miganie diody LED co 1s):
$regfile = "m48def.dat" ' plik danego mikrokontrolera
$crystal = 8000000 'częstotliwość generatora wewnętrznego
Config Portb.0 = 1 'wyjście dla LED
Portb.0 = 1
Enable Interrupts 'odblokowanie globalnego systemu przerwań
Enable Timer2 'odblokowanie przerwań od przepełnienia Timer2
Config Timer2 = Timer , Async = On , Prescale = 64 'prescaler Timer2 ustawiony na 64; właczona praca "asynchroniczna"
On Timer2 Licz 'przerwanie od przepełnienia Timer2 o etykiecie "licz"
Dim Czas As Word 'zmienna do odliczania 0,5s [32768(kwarc):256(pojemność licznika):64(prescaler)=2Hz]
Do
Loop
End
Licz:
Incr Czas
If Czas = 2 Then
Toggle Portb.0
Czas = 0
End If
Return
I okazuje się, że licznik jest sterowany z generatora wewnętrznego.
Gdy taki sam program wpiszę do ATMega8 to wszystko jest OK - LED miga co 1s.
Oba mikrokontrolery (ATMega8 i ATMega48) są przewidziane do pracy asynchronicznej.
Może ktoś podpowie co zrobić aby uzyskać poprawną pracę na ATMega48.
Pozdrawiam Jacek
Chciałem uzyskać pracę asynchroniczną (licznik sterowany kwarcem zegarkowym, procesor generatorem wewnętrzym).
Napisałem prosty program (miganie diody LED co 1s):
$regfile = "m48def.dat" ' plik danego mikrokontrolera
$crystal = 8000000 'częstotliwość generatora wewnętrznego
Config Portb.0 = 1 'wyjście dla LED
Portb.0 = 1
Enable Interrupts 'odblokowanie globalnego systemu przerwań
Enable Timer2 'odblokowanie przerwań od przepełnienia Timer2
Config Timer2 = Timer , Async = On , Prescale = 64 'prescaler Timer2 ustawiony na 64; właczona praca "asynchroniczna"
On Timer2 Licz 'przerwanie od przepełnienia Timer2 o etykiecie "licz"
Dim Czas As Word 'zmienna do odliczania 0,5s [32768(kwarc):256(pojemność licznika):64(prescaler)=2Hz]
Do
Loop
End
Licz:
Incr Czas
If Czas = 2 Then
Toggle Portb.0
Czas = 0
End If
Return
I okazuje się, że licznik jest sterowany z generatora wewnętrznego.
Gdy taki sam program wpiszę do ATMega8 to wszystko jest OK - LED miga co 1s.
Oba mikrokontrolery (ATMega8 i ATMega48) są przewidziane do pracy asynchronicznej.
Może ktoś podpowie co zrobić aby uzyskać poprawną pracę na ATMega48.
Pozdrawiam Jacek
