Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
f11:technik:arduino:programme:arduino-side-tone-generator [2018/12/27 08:58]
dm3kb
f11:technik:arduino:programme:arduino-side-tone-generator [2019/09/29 12:03] (aktuell)
Zeile 15: Zeile 15:
 ARDUINO internen Timers der beim Überlauf eben jenen Interrupt erzeugt und die ensprechende Sub-Routine für die Interrupt Behandlung anspringt Anwendung.\\ ARDUINO internen Timers der beim Überlauf eben jenen Interrupt erzeugt und die ensprechende Sub-Routine für die Interrupt Behandlung anspringt Anwendung.\\
 Der Vorteil dabei ist das der Timer wesentlich genauer ist als die delay() Funktion die einfach nur wartet und den Arduino zum Nichtstun verdammt.\\ Der Vorteil dabei ist das der Timer wesentlich genauer ist als die delay() Funktion die einfach nur wartet und den Arduino zum Nichtstun verdammt.\\
-Der Timer wird vom Prozessor-Takt (16 Mhz) unabhängig vom Arduino hochgezählt. Beim Überlauf über 65536 wird der entsprechende Interrupt ausgelöst.\\ +Der Timer wird vom Prozessor-Takt (16 Mhz) unabhängig vom Arduino Code hochgezählt. Beim Überlauf über 65536 wird der entsprechende Interrupt ausgelöst.\\ 
-Der Arduino unterbricht nun seine main-loop und behandelt erst mal den code in der Interrupt-Handler Routine um danach an der Stelle in der mail-loop\\+Der Arduino unterbricht nun seine main-loop und behandelt erst mal den Code in der Interrupt-Handler Routine um danach an der Stelle in der Main-Loop\\
 fortzufahren an der der Interrupt zugeschlagen hat.\\ fortzufahren an der der Interrupt zugeschlagen hat.\\
 Details dazu z.B.: \\ Details dazu z.B.: \\
Zeile 116: Zeile 116:
     while(digitalRead(keyin)== LOW){     while(digitalRead(keyin)== LOW){
       // As long key in is LOW (Key is pressed so we need an output!!!)        // As long key in is LOW (Key is pressed so we need an output!!!) 
-      // Enable Interrupt 
            
       if (timerstat == 0 ) {       if (timerstat == 0 ) {
-        //Serial.print(" = : Enable Interupt Play\n");+        //Serial.print(" = : Enable Interrupt Play\n");
         playflag = 1;         playflag = 1;
         timerstat = 1;         timerstat = 1;
Zeile 133: Zeile 132:
       // So Timer1 will count starting from 39168 or 55625 or any value in between and creating an        // So Timer1 will count starting from 39168 or 55625 or any value in between and creating an 
       // Overflow Interrupt when reaching 65536       // Overflow Interrupt when reaching 65536
-      // needs to be set to time that a halve wave of the frequency need.+      // It needs to be set to time that a halve wave of the frequency need.
       // Formula is here: 65536 - (65536 - 16000000 / 1 / 350 / 2)       // Formula is here: 65536 - (65536 - 16000000 / 1 / 350 / 2)
       //                  Max Value of Timer  - ( Max Value of Timer / Arduino Clock Rate / PreScale / Frequency in Hz / 2 )       //                  Max Value of Timer  - ( Max Value of Timer / Arduino Clock Rate / PreScale / Frequency in Hz / 2 )
Zeile 166: Zeile 165:
 // End // End
 </code> </code>
 +
 +Zurück zu: [[f11:technik:arduino:start#Programme|F11:Arduino:Programme]]
f11/technik/arduino/programme/arduino-side-tone-generator.1545897514.txt.gz · Zuletzt geändert: 2019/09/29 12:01 (Externe Bearbeitung)
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0