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/11/13 01:04] (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 178: | Zeile 178: | ||
| void castCounting(void) | void castCounting(void) | ||
| { | { | ||
| - | DDRC = DDRC & | + | DDRC = DDRC & |
| PORTC |= INPUT_PIN_MASK; | PORTC |= INPUT_PIN_MASK; | ||
| _delay_us(1); | _delay_us(1); | ||
| - | buttonState | + | buttonState |
| - | DDRC |= INPUT_PIN_MASK; | + | DDRC |= INPUT_PIN_MASK; |
| // Einlesen der Tastensignale | // Einlesen der Tastensignale | ||
| 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 '' | ||