Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
microcontrollertechnik:skript [2024/10/28 04:14] – mexleadmin | microcontrollertechnik:skript [2024/10/28 05:04] (aktuell) – mexleadmin | ||
---|---|---|---|
Zeile 253: | Zeile 253: | ||
- halb so schnell weil doppelte Rampe | - halb so schnell weil doppelte Rampe | ||
- mitten zentriert | - mitten zentriert | ||
- | - | + | - weitere Register des TC anschauen |
+ | - TCNT1H/ | ||
+ | - OCR1AH/ | ||
+ | - OCR1BH/ | ||
+ | - ICR1H/ | ||
+ | - erst TIFR1: | ||
+ | - zeigt Ereignisse an (über Flags): z.B. Vergleichswert ist erreicht, oder Maximalwert ist erreicht | ||
+ | - wenn ein Ereignis eintritt, dann kann ein Interrupt ausgelöst werden | ||
+ | - TIMSK1 : Ist eine Maske, die angibt, welcher Interrupt aktiv ist | ||
+ | - Mal Overflow Interrupt testen: | ||
+ | - bei Initialisierung: | ||
+ | - außerhalb von main: | ||
+ | - '' | ||
+ | - wir brauchen zumindest einen " | ||
+ | - woher bekommen? | ||
+ | - am besten da nachschauen, | ||
+ | - suchen nach vector | ||
+ | - '' | ||
+ | - Eingeben von '' | ||
+ | - '' | ||
+ | - was machen wir da drin? am besten z.B. Port B3 toggeln | ||
+ | - '' | ||
+ | - testen --> toggelt! | ||
+ | - Wie könnte man nun die Ausgabe nur alle paar Zentelsekunden ausführen lassen? | ||
+ | - Alle Zeilen in den Interrupt? --> bloß nicht! | ||
+ | - SW_Flag in ISR setzen und in main auswerten | ||
+ | - '' | ||
+ | - '' | ||
+ | - '' | ||
+ | - Geschwindigkeit zu langsam? | ||
+ | - statt '' | ||
+ | - Aber wie kommt man z.b. genau auf eine Millisekunde? | ||
+ | - Man nehme: | ||
+ | - Takt: 18.432 MHz | ||
+ | - 8-Bit Counter: zählt bis 256 (16 Bit geht nicht genau auf...) | ||
+ | - --> zählt 72' | ||
+ | - Prescaler von 8: zählt 8x so langsam, also nur 9'000 pro Sekunde und löst interrupt aus | ||
+ | - Im Interrupt von 9 herunterzählen: | ||
+ | - up-Down-Counter ansehen |