Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
microcontrollertechnik:6_wuerfel_und_zufall [2022/10/22 03:56] tfischer |
microcontrollertechnik:6_wuerfel_und_zufall [2024/01/22 13:45] (aktuell) mexleadmin |
||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== 6. Würfel und Zufall ====== | + | ====== 6 Würfel und Zufall ====== |
==== Ziele ==== | ==== Ziele ==== | ||
Zeile 26: | Zeile 26: | ||
<-- | <-- | ||
- | --> III. Eingabe in Atmel Studio # | + | --> III. Eingabe in Microchip |
<WRAP group>< | <WRAP group>< | ||
Zeile 74: | Zeile 74: | ||
// Festlegung der Quarzfrequenz | // Festlegung der Quarzfrequenz | ||
#ifndef F_CPU // optional definieren | #ifndef F_CPU // optional definieren | ||
- | #define F_CPU 18432000UL | + | #define F_CPU 18432000UL |
# | # | ||
Zeile 244: | Zeile 244: | ||
- Die Konstanten entsprechen denen der letzten Programme. \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ | - Die Konstanten entsprechen denen der letzten Programme. \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ | ||
- Alle Variablen außer '' | - Alle Variablen außer '' | ||
- | - Bei den Funktionsprototypen sind einige bekannte Unterprogramme vorhanden. Details werden weiter unten erklärt. \\ \\ \\ | + | - Bei den Funktionsprototypen sind einige bekannte Unterprogramme vorhanden. Details werden weiter unten erklärt. \\ \\ \\ \\ \\ |
'' | '' | ||
- | - Das Hauptprogramm ähnelt sehr stark dem [[4._up_down_counter|Up/Down Counter]]. | + | - Das Hauptprogramm ähnelt sehr stark dem [[4_up_down_counter|Up/Down Counter]]. |
- Zunächst werden zwei Initialisierungsroutinen aufgerufen (siehe weiter unten) | - Zunächst werden zwei Initialisierungsroutinen aufgerufen (siehe weiter unten) | ||
- Dann werden wieder die " | - Dann werden wieder die " | ||
Zeile 254: | Zeile 254: | ||
- Mit dem Befehl '' | - Mit dem Befehl '' | ||
- In der Endlosschleife sind auf der ersten Ebene wieder nur If-Abfragen zu den Flags '' | - In der Endlosschleife sind auf der ersten Ebene wieder nur If-Abfragen zu den Flags '' | ||
- | - Alle $10ms$ (bzw. wenn das entsprechende Flag gesetzt wird) wird das Flag zurückgesetzt und das Unterprogramm '' | + | - Alle $10~\rm ms$ (bzw. wenn das entsprechende Flag gesetzt wird) wird das Flag zurückgesetzt und das Unterprogramm '' |
- | - Alle $100ms$ (bzw. wenn das entsprechende Flag gesetzt wird) wird das Flag zurückgesetzt und das Unterprogramm '' | + | - Alle $100~\rm ms$ (bzw. wenn das entsprechende Flag gesetzt wird) wird das Flag zurückgesetzt und das Unterprogramm '' |
'' | '' | ||
- Mit dem Befehl '' | - Mit dem Befehl '' | ||
- | - Der Überlauf-Interrupt durch den Timer0 wird erst bei Überlauf des 8-Bit Wert ausgeführt. Auch hier ergibt sich durch den Prescaler und Modus ('' | + | - Der Überlauf-Interrupt durch den Timer0 wird erst bei Überlauf des 8-Bit Wert ausgeführt. Auch hier ergibt sich durch den Prescaler und Modus ('' |
- | - Die Ermittlung von '' | + | - Die Ermittlung von '' |
- | - Eine große Änderung ist, dass bereits im Interrupt alle 10ms die Unterfunktion '' | + | - Eine große Änderung ist, dass bereits im Interrupt alle 10ms die Unterfunktion '' |
- | \\ \\ \\ \\ | + | \\ \\ \\ |
'' | '' | ||
- | \\ \\ \\ \\ | + | \\ \\ \\ \\ \\ |
- | - In dieser Funktion werden zunächst die Stellungen aller Taster eingelesen (vgl. '' | + | - In dieser Funktion werden zunächst die Stellungen aller Taster eingelesen (vgl. '' |
- Neu hier ist, dass die Bedienung der Schalter nur das Flag '' | - Neu hier ist, dass die Bedienung der Schalter nur das Flag '' | ||