Mam problem z wybudzeniem procka Atmega8 z trybu Powerdown. Do usypiania i wybudzania chcę wykorzystać ten sam przycisk (na INT1). Zauważyłem,że obsługa przerwania jest wykonywana najpierw w stosunku do pętli głównej, jednakże uśpienie procka w przerwaniu nie pozwala na jego obudzenie, natomiast obsługa klawisza w petli głównej i tam jego usypianie nie pozwala go uśopić. Napisałem taki oto kod, ale nie działa. Męcze się już z tym drugi dzień, pomocy!
Kod: Zaznacz cały
$regfile = "m8def.dat"
$crystal = 1000000
Config Portd.3 = Input
Portd.3 = 1
Config Portb.7 = Output
Portb.7 = 1
Config Int1 = Low Level 'konfiguracja przycisku budzenia
On Int1 Wstawaj 'wywołanie budzenia procka
Enable Int1 'uruchomienie INT1
Enable Interrupts 'uruchomienie globalnego systemu przetwań
stdby_led Alias Portb.7 'dioda LED Low Bat
Pwr_sw Alias Pind.3 'przycisk POWER
Do
Loop
End
Wstawaj:
If stdby_led = 1 Then
stdby_led = 0
Powerdown
Else
stdby_led = 1
End If
Do : Loop Until Pwr_sw = 1
Return