Hallo!
Ich selbst bin relativ neu was Assembler angeht, da wir im Studium vor
etwa 4~ Wochen damit angefangen haben. Nun stehe ich vor der Aufgabe,
eine Bedarfsampel zu simulieren.
Dise kann entweder ausgeschaltet werden, sodass sie nur angeht wenn
jemand den Bedarfsknopf drückt und dabei über die Straße gehen möchte,
oder aber, bei ausgeschaltetem Nachtmodus, ständig grün für die Autos
anzeigt.
Dabei sind in PORTA die Bits 7-5 wie folgt definiert:
- Bit 7 ist der Bedarfstaster
- Bit 6 soll den Nachtmodus ausschalten
- Bit 5 soll den Nachtmodus anschalten
Die restlichen Bits 4-0 sind die Ampellichter.
Nun scheitere ich leider daran, den PinChangeInterrupt für diese 3 Bits
zu implementieren. Kann mich jemand auf den richtigen Pfad lenken?
1 | ; ISR Pin Change Interrupt : PCINT7
|
2 | PCINT0_isr:
|
3 | ldi R28, bedarf
|
4 | reti ; Return from Interrupt;
|
5 |
|
6 | ; ISR Pin Change Interrupt : PCINT6
|
7 | PCINT6_isr:
|
8 | ldi R27, nModusAus
|
9 | reti ; Return from Interrupt;
|
10 |
|
11 | ; ISR Pin Change Interrupt : PCINT5
|
12 | PCINT5_isr:
|
13 | ldi R27, nModusAn
|
14 | reti ; Return from Interrupt;
|
15 |
|
16 | ; ----- Initialisierung der PCINT0 -----
|
17 | InitPCINT0:
|
18 | sbi PCICR, 0x01
|
19 | sbi PCMSK0, 0x01
|
20 | //sbi PCMSK0, PCINT6
|
21 | //sbi PCMSK0, PCINT5
|
22 |
|
23 | /*sbi PCICR, PCINT0
|
24 | sbi PCMSK0, PCINT7
|
25 | sbi PCMSK0, PCINT6
|
26 | sbi PCMSK0, PCINT5*/
|