.NOLIST .INCLUDE "8515def.inc" ;Device .LIST ;**************************************************************************** ;* Definitionen * ;**************************************************************************** .def LR = R16 ;temp Reg. .def Zeit = R17 ;Zeitzähler .def Taster_press = R2 ;aktuell gedrückte Tasten .def Taster_temp = R19 ;Zischenspeicher Tasterwerte .def Status = R20 ;Statusreg. für Taster ;Bit0 = T1 ;Bit1 = T2 ;Bit2 = T3 ;......... ;**************************************************************************** ;* Interrupt-Routine * ;**************************************************************************** .cseg RJMP RESET ;Routine für RESET-Bearbeitung RJMP EXT_INT0 ;Routine für externen Interupt 0 RJMP EXT_INT1 ;Routine für externen Interupt 1 RJMP TIME1_CAPT ;Routine für Timer 1 Capture RJMP TIME1_COMPA ;Routine für Timer 1 Compare A RJMP TIME1_COMPB ;Routine für Timer 1 Compare B RJMP TIME1_OVFL ;Routine für Timer 1 Overflow RJMP TIME0_OVFL ;Routine für Timer 0 Overflow RJMP SPI_HANDLE ;SPI - Transfer beendet RJMP UART_RxC ;UART: Byte empfangen RJMP UART_DRE ;UART: Datenregister leer RJMP UART_TxC ;UART: Transfer beendet RJMP ANA_COMP ;Analog-Komparator ;**************************************************************************** ;* Routine für RESET-Bearbeitung * ;**************************************************************************** RESET: LDI LR,LOW(RAMEND) ;Initiate Stackpointer (Unterprogramme!) OUT SPL,LR ; " LDI LR,HIGH(RAMEND) ; " OUT SPH,LR ; " LDI LR,0b11111111 ;PORTA OUT DDRA,LR LDI LR,0b00000000 OUT PORTA,LR LDI LR,0b00001111 ;PORTB OUT DDRB,LR ;Taster sind an PB4, PB5, PB6 LDI LR,0b00000000 OUT PORTB,LR LDI LR,0b11111111 ;PORTC OUT DDRC,LR LDI LR,0b00000000 OUT PORTC,LR LDI LR,0b11111110 ;PORTD OUT DDRD,LR LDI LR,0b00000000 OUT PORTD,LR LDI LR, (1<