012
28.07.2022, 17:26 Uhr
Haupti65
|
Moin Zusammen, habe jetzt mal 2 Versionen getestet. Einmal mit Polling, die funktioniert:
Quellcode: | .org 000ch init: di ld spl,#80h ;Stackpointer ld imr,#00h ;Interrupt Maskierung ld ipr,#2fh ;Interrupt Priorität ld p01m,#04h ;Stack Intern,Timing Normal ld p3m,#40h ;Betriebsart UART ld t0,#06h ;Baudrate 9600 ld pre0,#05h ld tmr,#03h ;Timer Betriebsart ei start: tm irq,#08h ;Taste gedrückt? jr z,start ;Nein! call sioin call co jr start
co: ld sio,r4 ld irq,#00h ret sioin: ld r4,sio ld irq,#00h ;iret ret
siout: iret dummy: iret .end
|
Und eine weitere mit Sioin Interrupt, bei der nicht immer alle Zeichen ausgegeben werden:
Quellcode: | .org 000ch init: di ld spl,#80h ;Stackpointer ld imr,#08h ;Interrupt Maskierung ld ipr,#2fh ;Interrupt Priorität ld p01m,#04h ;Stack Intern,Timing Normal ld p3m,#40h ;Betriebsart UART ld t0,#06h ;Baudrate 9600 ld pre0,#05h ld tmr,#03h ;Timer Betriebsart ei start: tm irq,#08h ;Taste gedrückt? jr z,start ;Nein! call co jr start
co: ld sio,r4 ld irq,#00h ret sioin: ld r4,sio ld irq,#00h iret siout: iret dummy: iret .end
|
Warum geht die mit Interrupt nicht so wie die erste? Danke schonmal für Eure Antworten! Gruss Olaf |