;**** DEFINITIONS ****************************** ;**** CLOCK .equ CLOCK = 14745600 ;**** BAUDRATE .equ BAUD = 9600 .equ UBRRVAL = CLOCK/(BAUD*16)-1 ;**** REGISTERS .def i = r16 .def j = r17 .def k = r18 .def steph = r19 .def stepl = r20 .def stephb = r21 .def steplb = r22 .def stepnum = r23 .def color = r24 ;**** INTERRUPT VECTORS .org 0x000 rjmp init .org INT0addr rjmp trigger .org OC1Aaddr rjmp step .org OVF1addr rjmp ovf .org OVF0addr rjmp rstuart .org URXCaddr ;USART Rx Complete Vektor rjmp rx init: cli ;**** STACK ldi i,LOW(RAMEND) out SPL, i ldi i,HIGH(RAMEND) out SPH, i ;**** I/O ldi i, 0b00111111 out DDRC, i ldi i, 0b00000011 out DDRB, i clr i out PORTB, i out PORTB, i ;**** SRAM ldi i, 0b10010001 ;0x100-0x1FF mit anfangsmuster laden ldi ZH, 0x01 ldi ZL, 0x00 init_sram: st Z, i subi ZL, -1 brne init_sram subi ZH, -1 cpi ZH, 0x02 brne init_sram ldi ZH, 0x01 ldi YH, 0x01 ;**** EXTERNAL INTERRUPT INT0 ldi i, (3<