ITG-ABI 12/13 |
12.04.2013 |
Korrekturhinweise / Lösungsvorschlag |
|---|
Bei der Zustandsübergangstabelle sollten alle Ausgangskombinationen erfasst werden. Die im Lösungsvorschlag ermittelte Zeilenanzahl passt nach meiner Logik nicht, hier zwei mögliche Lösungen.
| Zeile | Start | A | B | Zustand | Zustand' | Bemerkung |
|---|---|---|---|---|---|---|
| 1 | 0 | x | x | x | Ausgleich | umfasst 32 Zeilen |
| 2 | 1 | x | x | EIN | EIN | umfasst 4 Zeilen |
| 3 | 1 | 0 | 0 | AUSGLEICH | x | don't Care |
| 4 | 1 | 0 | 1 | AUSGLEICH | A1 | |
| 5 | 1 | 1 | 0 | AUSGLEICH | B1 | |
| 6 | 1 | 1 | 1 | AUSGLEICH | AUSGLEICH | |
| 7 | 1 | 0 | 0 | A1 | x | |
| 8 | 1 | 0 | 1 | A1 | A2 | |
| 9 | 1 | 1 | 0 | A1 | AUSGLEICH | |
| 10 | 1 | 1 | 1 | A1 | A1 | |
| 11 | 1 | 0 | 0 | A2 | x | |
| 12 | 1 | 0 | 1 | A2 | A3 | |
| 13 | 1 | 1 | 0 | A2 | A1 | |
| 14 | 1 | 1 | 1 | A2 | A2 | |
| 15 | 1 | x | x | A3 | A3 | umfasst 4 Zeilen |
| 16 | 1 | 0 | 0 | B1 | x | |
| 17 | 1 | 0 | 1 | B1 | AUSGLEICH | |
| 18 | 1 | 1 | 0 | B1 | B2 | |
| 19 | 1 | 1 | 1 | B1 | B1 | |
| 20 | 1 | 0 | 0 | B2 | x | |
| 21 | 1 | 0 | 1 | B2 | B1 | |
| 22 | 1 | 1 | 0 | B2 | B3 | |
| 23 | 1 | 1 | 1 | B2 | B2 | |
| 24 | 1 | x | x | B3 | B3 | umfasst 4 Zeilen |
| Zeile | Start | A | B | Zustand | Zustand' | Bemerkung |
|---|---|---|---|---|---|---|
| 1 | 0 | x | x | x | Ausgleich | umfasst 32 Zeilen |
| 2 | 1 | x | x | EIN | EIN | umfasst 4 Zeilen |
| 3 | 1 | 0 | x | AUSGLEICH | A1 | umfasst 2 Zeilen |
| 4 | 1 | 1 | 0 | AUSGLEICH | B1 | |
| 5 | 1 | 1 | 1 | AUSGLEICH | AUSGLEICH | |
| 6 | 1 | 0 | x | A1 | A2 | umfasst 2 Zeilen |
| 7 | 1 | 1 | 0 | A1 | AUSGLEICH | |
| 8 | 1 | 1 | 1 | A1 | A1 | |
| 9 | 1 | 0 | x | A2 | A3 | umfasst 2 Zeilen |
| 10 | 1 | 1 | 0 | A2 | A1 | |
| 11 | 1 | 1 | 1 | A2 | A2 | |
| 12 | 1 | x | x | A3 | A3 | umfasst 4 Zeilen |
| 13 | 1 | 0 | 1 | B1 | AUSGLEICH | |
| 14 | 1 | x | 0 | B1 | B2 | umfasst 2 Zeilen |
| 15 | 1 | 1 | 1 | B1 | B1 | |
| 16 | 1 | 0 | 1 | B2 | B1 | |
| 17 | 1 | x | 0 | B2 | B3 | umfasst 2 Zeilen |
| 18 | 1 | 1 | 1 | B2 | B2 | |
| 19 | 1 | x | x | B3 | B3 | umfasst 4 Zeilen |
Verwendeter µC: ATMEL AVR 8 Bit RISC.
Zykluszeit bei 1 Mhz vergleichbar mit 8051 bei 12 Mhz: 1µSec. Für 3 Sec müssen ca. 3.000.000 Takte verbraten werden. Die nop-Befehle in der äussern Schleife dienen zu Korrektur und könnten auch weggelassen werden.
.def zeit = R16 ;R16 als Variable zeit .def innen = R17 ;R16 als Variable innen .def aussen = R18 ;R16 als Variable aussen ... wait3s: ldi zeit, 30 ;30*100ms wait100ms:
ldi aussen,100 ;100*1ms
loop_aussen:
ldi innen,249 ;249*4µs
loop_innen:
dec innen ;1Takt
nop ;1Takt
brne loop_innen ;2Takte bei Sprung
nop ;1Takt Korrektur
dec aussen ;1Takt
brne loop_aussen
dec zeit brne wait100ms ret ;Ruecksprung aus UP
void init(){
MCUCR = (1<<ISC11)|(1<<ISC01); // 0b00001010 fallende Flanke
GIMSK = (1<<INT1)|(1<<INT0); // 0b11000000 ext. Interrupts aktivieren
sei(); // globale Interruptfreigeabe
}