Hallo
Da ich bislang mit google nichts finden kann frag ich mal nach.
Ich wollte mal frage welche Timerinterrupts von standardbefehlen wie AnalogWrite()[PWM] oder Serial.print() oder oder...schon verwendet werden. Bzw anders rum Welche Timerinterrupts kann ich verwenden / Konfigurieren ohne mir eine andere Funktion kaputt zu machen?
Momentan nutze ich im loop die millis() funktion um mir die Zeit seit des letzten aufrufs zu errechnen aber das bringt mir nix wenn ich später auch mal den µC in Sleepmodus versetzen möchte und wie ich gesehen habe ist immer nur der Timer 2 verfügbar und die millis funktion arbeitet doch glaube ich mit Timer 1 sprich ist dann nicht mehr verfügbar abgesehen davon dass die berechnung im Loop auch nicht mehr ausgeführt wird...
Brauch dass weil ich eine reihe von Bewegungsabläufen und LED laufbändern ansteuern will für ein Modellprojekt und dabei momentan 8 ledbänder(über schieberegister) 4 Servos und 2 Motoren damit ansteuer und das ganze vom Rechner aus. Damit bin ich halt auf die Standardbefehle angewiesen, dass die funktionieren.
Da kommt immer auf die verwendeten Bibliotheken an.
PWM verwendet immer einen Timer pro 2 Ausgänge.
Ich verstehe nicht wie du so viel ansteuern willst und trotzdem den sleep-Modus brauchst. Ich finde das nicht sinnvoll da eine LED bereits mehr Strom verbraucht als der ganze Arduino.
Danke. Wenn allein schon die PWM ausgänge alle Timer belegen kann ich halt keinen mehr selber verwenden und muss weiterhin mit millis() arbeiten. Aber gibt es irgendwo eine liste wo annähernd alle Verwendungen der Timer und deren Inerrupts mal drin stehen?
Was die jeweiligen Bibliotheken verwenden muss man darin nachsehen (meistens aus dem Header ersichtlich) Das hängt auch vom Prozessor ab. Die Servo Library z.B. verwendet i.d.R. Timer1. Es gibt auch vereinzelt Bibliotheken wo man den Timer auswählen kann.
Der Mega hat mehr Timer und damit mehr PWM Ausgänge wenn du das brauchst. Es gibt auch externe PWM Controller als Shields oder Breakout Boards.
Den Sleep Modus halte ich hier auch für unsinnig. Einmal in einem LED Projekt. Und dann wacht der Prozessor jedesmal auf wenn ein Timer Interrupt kommt.