06-interrupt
(C)stachan 08.02.2024
Task 6 :: Button & Interrupt
Aktivieren Sie den roten Button:
-
Schreiben Sie ein Programm mit Endlosschleife, das im Abstand von 1T=20000 immer wieder von 3 bis 9 zählt (Schleife benutzen!!!) und dies im Debugger ausgibt.
-
Bei Klick auf den roten Button soll im Debugger der Text „Interrupted by [IHR_NACHNAME]“ ausgegeben werden.
; Wie man Interrupt aktiviert:
; Aus dem Demo-Beispiel von YASP.me benötigen Sie folgende Zeilen:
; ---- Zeilen 9-12:
; Enable interrupts for the red button (= pin 2)
; Pin: 7 6 5 4 3 2 1 0
; Mask: 0 0 0 0 0 1 0 0 = 4dec
ENABLE 4
; ---- Hier folgt Ihr Programm:
main:
; Ihr Code ...
JMP main ; Alles nach dieser Zeile darf nie direkt erreichbar sein
; ---- Ab Zeile 30:
isr1: ; wenn der rote Button geklickt wird
; Ihr Code ...
RETI ; Rückkehr zum Hauptprogramm
; ---- interrupt table, alle 4 Zeilen!!!
ORG 0x100
DW 0 ; pin 0 (not wired)
DW 0 ; black button
DA isr1 ; red button
END
Activate the red button:
-
Write a programme with an infinite loop that counts from 3 to 9 at intervals of 1T=20000 (use the loop!!!) and outputs this in the debugger.
-
When the red button is clicked, the text ‘Interrupted by [YOUR_LAST_NAME]’ should be output in the debugger.
; How to enable interrupt:
; From the demo example of YASP.me you need the following lines:
; ---- Lines 9-12:
; Enable interrupts for the red button (= pin 2)
; Pin: 7 6 5 4 3 2 1 0
; Mask: 0 0 0 0 0 1 0 0 = 4dec
ENABLE 4
; ---- Here is your program:
main:
; Your code ...
JMP main ; Everything after this line must never be
; directly accessible
; ---- From line 30:
isr1: ; when the red button is pressed
; Your code ...
RETI ; Return to the main program
; ---- interrupt table, all 4 lines!!!
ORG 0x100
DW 0 ; pin 0 (not wired)
DW 0 ; black button
DA isr1 ; red button
END