est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra
est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra
est Bewegung durch eine 3D-Landschaft mit ... - David Zaadstra
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Projektarbeit 2002, BKIK 2/1<br />
<strong>David</strong> <strong>Zaadstra</strong>, Alexander Fuchs<br />
<strong>Bewegung</strong> <strong>durch</strong> <strong>eine</strong> <strong>3D</strong>-<strong>Landschaft</strong> <strong>mit</strong> Fernbedienung<br />
Elektronikschule Tettnang<br />
Hauptprogramm<br />
Start<br />
Start des Programms<br />
SP #80h<br />
Der Stackpointer wird gesetzt<br />
Interrupts<br />
initialisieren<br />
Die Interrupt-Einstellungen werden so gesetzt,<br />
dass Timer 0 in den Interrupt gehen kann<br />
R7 #0<br />
R7 ist der Indikator dafür, ob das Signal zu Ende<br />
ist, oder noch andauert. Es wird im Interrupt-<br />
Programm beschrieben<br />
WAIT_HIGH<br />
Um genau den Anfang des Signals abzupassen<br />
wartet Wait_High auf ein ca. 10ms langes High<br />
Timer 0 starten<br />
TH0 #FFh<br />
TL0 #9Bh<br />
R2 #0<br />
Der Timer 0 wird so initialisiert, dass er genau<br />
0,1ms bis zum Überlauf braucht<br />
In R2 wird die Anzahl der Impulse + Pausen<br />
abgelegt<br />
R1 #0<br />
Jedes mal wenn High anliegt und der Timer<br />
überläuft werden in R1 die High-Impulslängen<br />
hochgezählt<br />
A #0<br />
R0 #0<br />
A indiziert dem Timer, ob er High (R1) oder Low<br />
(R0) hochzählen soll. 0 bedeutet Low, 1 bedeutet<br />
High. A wird <strong>mit</strong> 0 initialisiert, da als erstes ein<br />
langes Low am Anfang des Signals steht<br />
Jedes mal wenn Low anliegt und der Timer<br />
überläuft werden in R0 die Low-Impulslängen<br />
hochgezählt<br />
B R1<br />
Die Länge des letzten High-Impulses wird B<br />
übergeben, da<strong>mit</strong> SAVE sie speichern kann<br />
- 18 -