X-Git-Url: https://hackdaworld.org/gitweb/?p=my-code%2Fatmel.git;a=blobdiff_plain;f=beginners%2Ftest_int.asm;h=bb01a4129922d19813c5071abbe31231aec3115f;hp=91fb4b37ceeda6145e0d126dff9ecf4cf15591c8;hb=4a03344b41c8180001804c6258a1bcbfad4f186d;hpb=c27a5b4bafdf5610c566f866b37b447223c37145 diff --git a/beginners/test_int.asm b/beginners/test_int.asm index 91fb4b3..bb01a41 100644 --- a/beginners/test_int.asm +++ b/beginners/test_int.asm @@ -1,75 +1,103 @@ ; -; portd 3-7 blinken lights ;) +; portd 3-7 lauflicht mit UART-RX masked byte anzeige ; -; author: hackbard@hackdaworld.dyndns.org +; by Hunz ;) ; .include "../include/2313def.inc" ; RESET rjmp INIT -nop ; INT0 reti -nop ; INT1 reti -nop ; T1 CAPT1 reti -nop ; T1 COMP1 reti -nop ; T1 OVF1 -reti -nop +rjmp T1_OVF1 ; T0 OVF0 reti -nop ; UART RX rjmp UART_RX -nop ; UART UDRE reti -nop ; UART TX reti -nop ; ANA_COMP reti -nop + +T1_OVF1: +; toggle LED +out DDRD, r17 +; next LED +rol r17 +; skip next operation if beyond last LED +sbrs r17, 7 +reti ; we return if not beyond last LED +; reset LED counter to first LED +ldi r17, 4 +reti UART_RX: +; read received byte to r16 in r16, UDR +; mask with valid LED bits andi r16, $7C +; echo masked byte out UDR, r16 +; set LEDs according to masked byte out DDRD, r16 reti INIT: +; Stackpointer setzen ldi r16, Low(RAMEND) out SPL, r16 ; baudrate einstellen ldi r16, 11 ; "38400 bps wert" in r16 out UBRR, r16 ; write to uart baudrate register -sbi UCR, (RXEN|TXEN|RXCIE) ; enable tx at uart control register +; enable TX, RX, Interrupt on RX +ldi r16, ((1<