Hallo, ich möchte gerne am Beispiel des Atmega328p wissen wie es sich mit dem 16bit Timer verhält. Dieser hat hat z.b. 3 Register TCCR1A / B & C die man als Timer definieren kann. 1. Frage: Laufen diese Timer unabhängig voneinander? 2. Frage: mal angenommen ich wollte tatsächlich 3 Timer für mein Programm. Was wäre denn performancetechnisch gesehen sinnvoller? Tatsächlich alle 3 Hardwaretimer laufen lassen oder lieber einen Timer laufen lassen der 3 Variablen hochzählen lässt? Diese könnte man dann je nachdem welche Taktung man im Programm braucht unabhängig voneinander abfragen und nutzen. Danke schonmal für alle Antwortenden! Gruß hiho
Wenn es sich um Zeiten im Programm handelt und es nicht grad zeitlich sehr eng zugeht, dann deklariert man einen Timer zum Systemtimer, der beispielsweise mit festen 1KHz taktet. Daraus leitet man dann diverse Aktionen ab. Programm-Wartezeiten im 1-2stelligen Mikrosekundenbereich kann man oft sinnvoller mit programmierten Delays realisieren, als mit Timern. Die Timer 1, 2 und 3 sind voneinander unabhängig. Die von dir erwähnten Steuerregister A/B/C des gleichen Timers 1 freilich sind es allerdings nicht.
:
Bearbeitet durch User
hiho schrieb: > Hallo, > > ich möchte gerne am Beispiel des Atmega328p wissen wie es sich mit dem > 16bit Timer verhält. Dieser hat hat z.b. 3 Register TCCR1A / B & C die > man als Timer definieren kann. Nein. Mit diesen 3 Registern wird der eine 16-Bit-Timer initialisiert. Dazu hat der 328er noch 2 8-Bit-Timer. > 1. Frage: Laufen diese Timer unabhängig voneinander? Erübrigt sich. > 2. Frage: mal angenommen ich wollte tatsächlich 3 Timer für mein > Programm. Was wäre denn performancetechnisch gesehen sinnvoller? > Tatsächlich alle 3 Hardwaretimer laufen lassen oder lieber einen Timer > laufen lassen der 3 Variablen hochzählen lässt? Diese könnte man dann je > nachdem welche Taktung man im Programm braucht unabhängig voneinander > abfragen und nutzen. Das kommt immer auf die Anwendung an. Um Leds mit verschiedenen Frequenzen blinken zu lassen, nimmt man einen Timer. Braucht man z.B. mehrere unabhängige PWM-kanäle nimmt man mehrere Timer. mfg.
Thomas Eckmann schrieb: > Frequenzen blinken zu lassen, nimmt man einen Timer. Braucht man z.B. > mehrere unabhängige PWM-kanäle nimmt man mehrere Timer. Kommt drauf an wie unabhängig. Wenn unabhängige Frequenz, dann separate Timer. Wenn es nur um verschiedene Pulsbreiten bei gleicher Frequenz handelt, dann darf es auch der gleiche sein.
hiho schrieb: > ich möchte gerne am Beispiel des Atmega328p wissen wie es sich mit dem > 16bit Timer verhält. Dieser hat hat z.b. 3 Register TCCR1A / B & C die > man als Timer definieren kann. Nein, der 16Bit-Timer hat so viele Konfigurations-Optionen, dass er drei Register braucht, um vollständig konfiguriert zu werden, es ist aber trotzdem nur ein Timer. MfG, Arno
A. K. schrieb: > Thomas Eckmann schrieb: >> Frequenzen blinken zu lassen, nimmt man einen Timer. Braucht man z.B. >> mehrere unabhängige PWM-kanäle nimmt man mehrere Timer. > > Kommt drauf an wie unabhängig. Wenn unabhängige Frequenz, dann > separate Timer. Wenn es nur um verschiedene Pulsbreiten bei gleicher > Frequenz handelt, dann darf es auch der gleiche sein. Was ist denn das für ein Unsinn. Wenn du dein Hirn mal einschaltest, wirst du selber darauf kommen, wie man mit nur einem Timer verschiedene Blinkfrequnzen erzeugt. mfg.
hiho schrieb: > Was wäre denn performancetechnisch gesehen sinnvoller? Diese Frage ist eigentlich erst dann sinnvoll, wenn die Performance davon tatsächlich tangiert wird. Was bei Timern im Millisekundenbereich üblicherweise nicht der Fall ist. Wenn du allerdings auf einem AVR alle 3 Timer mit je um die 10KHz Interrupts erzeugen lässt, dann ist die davon hervorgerufene CPU-Last wesentlich höher, als wenn die 3 (einfachen) Aktionen im Interrupt nur eines Timers stattfinden. Denn ein Interrupt braucht (in C) schon zig Takte, nur weil es ihn gibt.
Thomas Eckmann schrieb: > Was ist denn das für ein Unsinn. > Wenn du dein Hirn mal einschaltest, wirst du selber darauf kommen, wie > man mit nur einem Timer verschiedene Blinkfrequnzen erzeugt. Was ist denn das für ein Unsinn? Hättest du mal dein Hirn eingeschaltet, dann hättest du auch gelesen, dass ich ausdrücklich über PWM verschiedener Pulsbreite aber mit gleicher Grundfrequenz schrieb. Und da du kommst nun mit unterschiedlichen Blink-Frequenzen. Was hat das denn nun damit zu tun? NB: Auch das geht u.U. mit nur einem Timer. Wenn beispielsweise der Timer zwei PWM-Kanäle für 2 LEDs (oder 2 Farben einer LED) erzeugt, und ein nebenbei aus dem gleichen Timer abgeleiteter regelmässiger Interrupt die Kanäle fürs Blinken aus- und einschaltet.
:
Bearbeitet durch User
A. K. schrieb: > Thomas Eckmann schrieb: >> Was ist denn das für ein Unsinn. >> Wenn du dein Hirn mal einschaltest, wirst du selber darauf kommen, wie >> man mit nur einem Timer verschiedene Blinkfrequnzen erzeugt. > > Was ist denn das für ein Unsinn? Hättest du mal dein Hirn eingeschaltet, > dann hättest du auch gelesen, dass ich ausdrücklich über PWM > verschiedener Pulsbreite aber mit gleicher Grundfrequenz schrieb. Und da > du kommst nun mit unterschiedlichen Blink-Frequenzen. Was hat das denn > nun damit zu tun? Nun beruhige dich mal wieder, sonst verfällst du gleich in Schnappatmung. Das mit dem Blinken habe ich dem Fragesteller geschrieben und zwar als Antwort auf seine 2. Frage. Deine PWM interessiert mich einen Scheiss. mfg.
Thomas Eckmann schrieb: > Nun beruhige dich mal wieder, sonst verfällst du gleich in > Schnappatmung. Keine Sorge. Aus entsprechenden Forschungen ergibt sich regelmässig, dass "tit for tat" eine der erfolgreichsten Strategien im theoretischen Miteinander ist.
Thomas Eckmann schrieb: > Nun beruhige dich mal wieder Sagt der Richtige. Selbst nicht lesen können, aber gleich mit Beleidigungen starten: Thomas Eckmann schrieb: > Was ist denn das für ein Unsinn. > Wenn du dein Hirn mal einschaltest,
Ist der Thomas keck mann! schrieb: > Thomas Eckmann schrieb: >> Nun beruhige dich mal wieder > > Sagt der Richtige. Selbst nicht lesen können, aber gleich mit > Beleidigungen starten: > > Thomas Eckmann schrieb: >> Was ist denn das für ein Unsinn. >> Wenn du dein Hirn mal einschaltest, Na, du bist ja ein ganz witziger. mfg.
Danke Euch für die Hilfe! Nun ist es was klarer. Wenn ich also mehr als 3 Timer haben wollte müsste ich entweder "umständlicher" per Software programmieren oder aber einen anderen Chip aussuchen. Gruß hiho
Software ist nicht notwendigerweise umständlicher. Präzise Antworten gibts auf präzise Fragen (konkrete Aufgabe). Auf allgemeine Fragen kann es nur allgemeine Antworten geben, die im Einzelfall möglicherweise nicht sinnvoll sein können.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.