1 | .include "m168def.inc"
|
2 | .cseg
|
3 | .org 0
|
4 | ;-------------------------------------------------------------------------------
|
5 | ; Reset and Interrupt vector ;VNr. Beschreibung
|
6 | ;-------------------------------------------------------------------------------
|
7 | ;0x0000
|
8 | jmp main ; Reset Handler
|
9 | ;0x0002
|
10 | jmp ORG ; IRQ0 Handler
|
11 | ;0x0004
|
12 | jmp ORG ; IRQ1 Handler
|
13 | ;0x0006
|
14 | jmp ORG ; PCINT0 Handler
|
15 | ;0x0008
|
16 | jmp ORG ; PCINT1 Handler
|
17 | ;0x000A
|
18 | jmp ORG ; PCINT2 Handler
|
19 | ;0x000C
|
20 | jmp ORG ; Watchdog Timer Handler
|
21 | ;0x000E
|
22 | jmp ORG ; Timer2 Compare A Handler
|
23 | ;0x0010
|
24 | jmp ORG ; Timer2 Compare B Handler
|
25 | ;0x0012
|
26 | jmp ORG ; Timer2 Overflow Handler
|
27 | ;0x0014
|
28 | jmp ORG ; Timer1 Capture Handler
|
29 | ;0x0016
|
30 | jmp ORG ; Timer1 Compare A Handler
|
31 | ;0x0018
|
32 | jmp ORG ; Timer1 Compare B Handler
|
33 | ;0x001A
|
34 | jmp ORG ; Timer1 Overflow Handler
|
35 | ;0x001C
|
36 | rjmp Timer ; Timer0 Compare A Handler
|
37 | ;0x001E
|
38 | jmp ORG ; Timer0 Compare B Handler
|
39 | ;0x0020
|
40 | jmp ORG ; Timer0 Overflow Handler
|
41 | ;0x0022
|
42 | jmp ORG ; SPI Transfer Complete Handler
|
43 | ;0x0024
|
44 | jmp ORG ; USART, RX Complete Handler
|
45 | ;0x0026
|
46 | jmp ORG ; USART, UDR Empty Handler
|
47 | ;0x0028
|
48 | jmp ORG ; USART, TX Complete Handler
|
49 | ;0x002A
|
50 | jmp ORG ; ADC Conversion Complete Handler
|
51 | ;0x002C
|
52 | jmp ORG ; EEPROM Ready Handler
|
53 | ;0x002E
|
54 | jmp ORG ; Analog Comparator Handler
|
55 | ;0x0030
|
56 | jmp ORG ; 2-wire Serial Interface Handler
|
57 | ;0x0032
|
58 | jmp ORG ; Store Program Memory Ready Handler
|
59 |
|
60 | ORG: reti
|
61 |
|
62 |
|
63 |
|
64 |
|
65 |
|
66 | .equ XTAL = 3686400;H
|
67 |
|
68 | ;
|
69 | ; Namenszuordnung der Register im RAM
|
70 | ;
|
71 | .def LCD_1 = r16 ; LCD_Register
|
72 | .def LCD_2 = r17 ; LCD_Register
|
73 | .def LCD_3 = r18 ; LCD_Register
|
74 | .def temp1 = r19
|
75 | .def temp2 = r20
|
76 | .def temp3 = r21
|
77 | .def temp4 = r22
|
78 | .def temp5 = r23
|
79 | .def temp6 = r24
|
80 | .def temp7 = r25
|
81 | .def temp8 = r26
|
82 | .def temp9 = r27
|
83 | .def temp10 = r28
|
84 |
|
85 | ;
|
86 | ; Resethanling, booten
|
87 | ;
|
88 | main:
|
89 | ldi temp1, LOW(RAMEND) ; Stackpointer initialisieren
|
90 | out SPL, temp1
|
91 | ldi temp1, HIGH(RAMEND)
|
92 | out SPH, temp1 ;
|
93 |
|
94 | ldi temp1,0b00111111
|
95 | out DDRB,temp1
|
96 |
|
97 | ldi temp1,0b00000101 ; CS00 setzen: Teiler 1
|
98 | sts TCCR0B, temp1
|
99 |
|
100 | ldi temp1,(1<<TOIE0) ; TOIE0: Interrupt bei Timer Overflow
|
101 | sts TIMSK0, temp1
|
102 |
|
103 | sei
|
104 |
|
105 | mainloop:
|
106 | rjmp mainloop
|
107 |
|
108 | Timer: reti
|