.include "m128def.inc" ;-------Macros------------------------------------------------------------- ; Pin Toggeln .macro TogPin SBIS @0,@1 ; Wenn Bit (@1) in I/O-Reg. (@2) gesetzt, überspringe nächsten Befehl rjmp SetPin ClrPin: cbi @0,@1 rjmp TogPinx SetPin: SBI @0,@1 TogPinx: .endmacro .def akku = r16 ; r16 als Rechenregister "akku" definieren .def msTimer = r23 ; r23 als Zeit-Einstellungsregister ; r24 als Zählregister .def templ = r17 ; Zwischenspeicher 1 .def temp2 = r18 ; Zwischenspeicher 2 .def PulsCounter = r19 .equ key_pin = PINA ; Tasterpins .equ key_port = PORTA ; Datenregister (Taster) .equ key_ddr = DDRA ; Datenrichtungsregister (Taster) .equ led_port = PORTB ; Datenregister (LED) .equ led_pin = PINB .equ led_ddr = DDRB ; Datenrichtungsregister (LED) jmp RESET ; Reset jmp EXT_INT0 ; IRQ0 Request jmp EXT_INT1 ; IRQ1 Request jmp EXT_INT2 ; IRQ2 Request jmp EXT_INT3 ; IRQ3 Request jmp EXT_INT4 ; IRQ4 Request jmp EXT_INT5 ; IRQ5 Request jmp EXT_INT6 ; IRQ6 Request jmp EXT_INT7 ; IRQ7 Request jmp TIMER2_COMP ; Timer2 Compare jmp TIMER2_OVF ; Timer2 Overflow jmp TIMER1_CAPT ; Timer1 Capture jmp TIMER1_COMPA ; Timer1 CompareA jmp TIMER1_COMPB ; Timer CompareB jmp TIMER1_OVF ; Timer1 Overflow jmp TIMER0_COMP ; Timer0 Compare jmp TIMER0_OVF ; Timer0 Overflow jmp SPI_STC ; SPI Serial Transfer Complete jmp USART0_RXC ; USART0, Rx Complete jmp USART0_UDRE ; USART0 Data Register Empty jmp USART0_TXC ; USART0, Tx Complete jmp ADC_COMP ; ADC Conversion Complete jmp EE_READY ; EEPROM Ready jmp ANALOG_COMP ; Analog Comparator jmp TIMER1_COMPC ; Timer1 CompareC jmp TIMER3_CAPT ; Timer3 Capture jmp TIMER3_COMPA ; Timer3 CompareA jmp TIMER3_COMPB ; Timer3 CompareB jmp TIMER3_COMPC ; Timer3 CompareC jmp TIMER3_OVF ; Timer3 Overflow jmp USART1_RXC ; USART1, Rx Complete jmp USART1_UDRE ; USART1, Data Register Empty jmp USART1_TXC ; USART1, Tx Complete jmp TWI ; 2-wire Serial Interface jmp SPM_READY ; Store Program Memory Read RESET: ldi r16,high(RAMEND) out SPH,r16 ldi r16,Low(RAMEND) out SPL,r16 ;***************** PORTA ******************** ldi r16,$00 out DDRA,r16 ldi r16,$00 out PORTA,r16 ;***************** PORTB ******************** ldi r16,$FF out DDRB,r16 ldi r16,$00 out PORTB,r16 ;************ TIMER_COUNTER_1 *************** ldi r16,$00 ;TICIE1,OCIE1A,TOIE1 out TIMSK,r16 ldi r16,1<