Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
microcontrollertechnik:skript [2024/10/28 04:56] mexleadminmicrocontrollertechnik:skript [2024/10/28 05:04] (aktuell) mexleadmin
Zeile 277: Zeile 277:
     - testen --> toggelt!     - testen --> toggelt!
     - Wie könnte man nun die Ausgabe nur alle paar Zentelsekunden ausführen lassen?     - Wie könnte man nun die Ausgabe nur alle paar Zentelsekunden ausführen lassen?
-      - Alle Zeilen in den Interrupt? --> blos nicht!+      - Alle Zeilen in den Interrupt? --> bloß nicht!
       - SW_Flag in ISR setzen und in main auswerten       - SW_Flag in ISR setzen und in main auswerten
         - ''uint8_t IntFlag=0;'' als globale Variable         - ''uint8_t IntFlag=0;'' als globale Variable
Zeile 284: Zeile 284:
       - Geschwindigkeit zu langsam?       - Geschwindigkeit zu langsam?
         - statt ''TCCR1B |= 1<<CS12;'' besser ''TCCR1B |= 1<<CS11;''         - statt ''TCCR1B |= 1<<CS12;'' besser ''TCCR1B |= 1<<CS11;''
 +      - 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'000x pro Sekunde bis 256 und löst Interrupt aus 
 +        - 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: bei jeder 0 wäre es eine Millisekunde 
 +    - up-Down-Counter ansehen