Bekomme die Fehlermeldung " ...... out of Range" doch ich kann den fehler nicht lokalisieren?
1 | .include "m8def.inc" |
2 | |
3 | .org 0x0000 |
4 | rjmp RESET |
5 | rjmp BEGINN |
6 | reti |
7 | reti |
8 | reti |
9 | reti |
10 | reti |
11 | reti |
12 | reti |
13 | rjmp ZAEHLER |
14 | reti |
15 | reti |
16 | reti |
17 | reti |
18 | reti |
19 | reti |
20 | reti |
21 | reti |
22 | reti |
23 | |
24 | RESET: |
25 | |
26 | |
27 | in r16, 0b01000000 ;Initialisierung des Analog Wandlers |
28 | out ADMUX, r16 |
29 | |
30 | in r20, 0b00000000 ;Zähler Wert für Entfernung auf 0 setzen |
31 | |
32 | in r16, 0b00000000 ;Gesamten PortC als Eingang konfigurieren |
33 | out DDRC, r16 |
34 | |
35 | in r16, 0b11111111 ;Pullups verwenden |
36 | out PORTC, r16 |
37 | |
38 | in r16, 0b11111111 ;PortB als Ausgang verwenden |
39 | out DDRB, r16 |
40 | |
41 | in r16, TIMSK ;Timer konfigurieren |
42 | ori r16, 1<<TOIE0 |
43 | out TIMSK, r16 |
44 | |
45 | |
46 | |
47 | sei ;Globale Interrupt Freigabe |
48 | |
49 | BEGINN: |
50 | |
51 | sbis PC4 ;Abfrage des Schalter für Beginn der Messung |
52 | rjmp SENDEN ;Wenn Taster gedrückt ist Sendevorgang beginnen |
53 | rjmp BEGINN ;Taster erneut abfragen |
54 | |
55 | SENDEN: |
56 | |
57 | in r16, 0b00000001 ;Timer zur Entfernungsmessung beginnt zu zählen |
58 | out TCCR0, r16 |
59 | |
60 | in r16, 0b00000001 ;Spannungsversorgung für den Sender aktivieren |
61 | out PORTB, r16 |
62 | |
63 | in r16, 0b01101101 ;Starten des Fast PWM Signals zur erzeugung einer ca. 40 kHz Frequenz |
64 | out TCCR2, r16 |
65 | |
66 | |
67 | |
68 | |
69 | |
70 | |
71 | ZAEHLER: |
72 | |
73 | push r16 ;R16 sichern |
74 | in r16, SREG ;SREG sichern |
75 | push r16 |
76 | |
77 | INC r20 ;Bei jedem Overflow das "Zählregister" um 1 erhöhen |
78 | |
79 | pop r16 ;R16 wiederherstellen |
80 | out SREG, r16 ;Statusregister wiederherstellen |
81 | pop r16 |
82 | reti ;ISR verlassen |