Idea jest prosta. Wciskamy przycisk pod portami Pd2(int0) i pd3(int1) i wyświetlamy odpowiedni komunikat.
Dlaczego program cały czas stoi w miejscu i wyświetla "Int0"
Jeżeli ktoś ma to prosiłbym o jakiś przykładowy program do atmegi 8 z obsługą przerwań. Męcze się z tym programem i męcze i nic
Na płytce jest wszystko podłączone następująco:
z portu Pd2 i Pd3 podpięte są mikroswitche które jak wciskam to zwierane są do masy. Czy tak może być ?
Kod: Zaznacz cały
$regfile = "m8def.dat"
$crystal = 1000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portb.4 , Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7 , E = Portb.2 , Rs = Portb.3
Config Portd.2 = Input
Config Portd.3 = Input
On Int0 Int0_podprog Nosave
On Int1 Int1_podprog Nosave
Enable Int0
Enable Int1
Enable Interrupts
Do
Cls
Lcd "petla glowna"
Wait 3
Loop
Int0_podprog:
Disable Interrupts
Cls
Lcd "Int0"
Wait 2
Enable Interrupts
Return
Int1_podprog:
Disable Interrupts
Cls
Lcd "Int1"
Wait 2
Enable Interrupts
Return