Zwei mal Timer 1 ?

Neuuser

Mitglied
11. Aug. 2008
465
0
16
Sprachen
Halo Leute,
ich möchte auf den PB1 Ausgang eine pwm erzeugen wie ich das mache ist schon klar, aber ich wollte wissen ob ich den Timer 1 zweimal benutzen kann, weil er schon in mein Programm lauft.
Für den PWM über den Compare1a diesen Timer verwenden muss, oder ? kann ich auch ein anderen dafür nehmen?

Config Timer1 = Pwm , Compare A Pwm = Clear Down , Prescale = 256

Gruß Neuuser M.
 
Hallo Neuuser,

ich weiß jetzt nicht genau, wie du das meinst, aber wenn der Timer1 bereits verwendet wird, kommt es eben darauf an, ob das OutputCompareA Register für CTC Mode (Clear Timer on Comparematch) des Timers verwendet wird, wenn ja geht es nicht. Falls CTC mit CompareA Register nicht genutzt wird, dann kannst du über das CompareA Register eine PWM am zugehörigen Pin erzeugen, die Periodendauer und die Auflösung sind allerdings durch die vorgegebene Timerfunktion festgelegt.
Alternativ verwende OutputCompareB oder einen freien Timer, die PWM ist dann auf einem anderen IO-Pin.

Gruß,
Dirk
 
Hallo Neuuser!

Ich muss Dirk beipflichten.....
So richtig verstehe ich deine Frage auch nicht. :hmmmm:

Du kannst zum Beispiel ein und denselben Timer für zwei Aufgaben verwenden.... solange sie nicht parallel laufen müssen.

Du kannst also mitten im Programm den Timer1 stoppen und umkonfigurieren.
Zum Beispiel läuft er zu Beginn als Timer mit Overflow und nach einem bestimmten Tastendruck als PWM....
Du kannst aber nicht beides zur selben Zeit haben.

Beschreib deine Idee doch mal etwas genauer, dann kann man auch besser helfen. ;)

Gruß,
Cassio
 
Hi,
Beschreib deine Idee doch mal etwas genauer, dann kann man auch besser helfen.

ja genau, ihr kennt ja nun das Programm für meine Pumpenabschaltung, was Macken hatte.
Da lauft ja nun der Timer 1 schon für die ganzen Zähler, nun wollte ich das die Pumpe mit ein softanlauf startet, weil wen die gleich 20A und beim Start noch mehr ziehen muss, ist nicht so gut.
Und deswegen, das mit CompareA.
Nun erklärt mir mal wie ich das anfangen soll mit den Timern :D

Gruß Neuuser M.
 
Hi Neuuser!

Das hatte ich mir doch schon fast gedacht! ;)

Ich habe eben noch mal schnell ins Programm geschaut, damit ich hier keinen Mist schreibe. :cool:
Du verwendest den ATMega8 und damit hast du doch Timer0 (8bit), den Timer1 (16bit mit PWM) und Timer2 (8bit mit PWM).

Du kannst den Timer0 doch als Zeitspanne für deine Zählfunktion nutzen und hast dann den Timer1 als PWM frei.

Wäre doch eine Idee, oder? :)

Du kannst aber auch den Timer2 für ein PWM-Signal nutzen (bin der Meinung das auch mal gemacht zu haben) und den Timer1 so lassen wie er ist.
Allerdings lässt sich das PWM-Signal von Timer1 viel feiner abstufen.

Nun entscheide selbst. ;)

Gruß,
Cassio
 
Hi Cassio,
ja das mit dem Timer 2 hatte ich schon versucht, da scheinen die Compare nicht zu funktionieren.
Ich werde es mit dem Timer 0 mal versuchen mal sehen.

Gruß Neuuser M.

Ach, das mit timer0 geht doch nicht als Zähler für mein Programm, der zählt doch bloß bis 255, ich brauche mindestens 1200.
Oder denke ich da wieder nur Quatsch .
 
Hi Neuuser!

Natürlich kannst du zählen was du willst und so viel du willst....
Wie du das im Programm löst ist deine Sache bzw. des Programmierers Freiheit. ;)

Ähm moment mal....
Du hast ja die Softclock (Uhr) laufen:
Code:
Config Clock = Soft                                         ', Gosub = Sectic
Config Date = Dmy , Separator = .

Damit müsste der Timer2 eigentlich schon belegt sein.

Also fällt die Möglichkeit für dich aus.


Wenn ich es richtig verstanden habe, dann möchtest du doch nur jede Sekunde einen Zähler erhöhen.
Hast du den Timer1 nur aus "Verlegenheit" so eingerichtet, weil das "Gosub = Sectic" nicht funktionierte?

Wenn dem so ist, dann würde ich da noch mal ansetzen um den Timer1 frei zu bekommen.

Gruß,
Cassio
 
Hi Cassio,
Hast du den Timer1 nur aus "Verlegenheit" so eingerichtet, weil das "Gosub = Sectic" nicht funktionierte?

Wenn dem so ist, dann würde ich da noch mal ansetzen um den Timer1 frei zu bekommen.

:eek: wie meinste den das, der Timer 1 ist doch eigentlich nur fürs Zählen gedacht, jedenfalls habe ich den nicht wegen den Gosub = Sectic eingerichtet.

Gruß Neuuser M.
 
Hi Cassio,
ach ja , :banghead: habe mich noch mal belesen über Echtzeituhr mit Timer2.
Könnte ich dann den Timer0 für PWM verwenden ?

Gruß Neuuser M.
 
Hi Neuuser!

Wie ich weiter oben schon mal geschrieben habe, benutzt du doch den Timer1 nur dazu um deine "Sekunden" zu zählen.

Warum benutzt du die "Sectic-Routine" nicht dafür? :hmmmm:

Damit hättest du jede Sekunde die Möglichkeit deine benötigte Variable zählen zu lassen.

Obendrein hast du den Timer1 wieder frei und kannst ihn als PWM benutzen. :)

Der Timer0 kann leider nicht als PWM verwendet werden.

Versuch doch einfach noch mal die "Sectic-Routine" zum Laufen zu bekommen.
Oder habe ich bei der Funktion des Timer1 noch etwas übersehen? :hmmmm:

Gruß,
Cassio
 
Hi Cassio,
hm, nein da hast du nichts übersehen, mit der Sectic-Routine kann man eine Art von Timer laufen lassen ? gut gesagt, ich weiß aber nicht wie :( ist irgend wo ein schönes Beispiel zu finden ?

gruß Neuuser M.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)