Forum: Mikrocontroller und Digitale Elektronik Timer2 Obergrenze einstellen


von Anfänger (Gast)


Lesenswert?

Hallo, ich beginne gerade mit einen Atmega8 und hab da ein Verständnis 
Problem mit den verschiedenen modis.

Ich möchte gerne das eine bestimmte Zeit (hier:100us) der timer 2 
Ausgang auf high geht und dann für (900us) auf low geht. Mach ich das 
jetzt mit ocr2? also den Pegel Wechsel. Und wo trage ich die max 
Laufzeit ein.also für die ganze Periode

von c-hater (Gast)


Lesenswert?

Anfänger schrieb:

> Hallo, ich beginne gerade mit einen Atmega8 und hab da ein Verständnis
> Problem mit den verschiedenen modis.

Dann ändere das. Lies' das Datenblatt einfach so oft, bis du's begriffen 
hast.

von Anfänger (Gast)


Lesenswert?

Ach schön so geht man im Forum also mit fragen um.

von Timerdatenignorierer (Gast)


Lesenswert?

Anfänger schrieb:
> Ach schön so geht man im Forum also mit fragen um.

Ja Faulheit wird hier nur mässig unterstützt.

von Anfänger (Gast)


Lesenswert?

Was hat Faulheit mit Missverständnis zutun?

von THOR (Gast)


Lesenswert?

Anfänger schrieb:
> Was hat Faulheit mit Missverständnis zutun?

Du könntest vorhandenen Code zeigen, um zu beweisen dass du schon was 
gemacht hast.

Dann könntest du sagen was der Code tut, was er stattdessen tun soll und 
die Forenmitglieder sagen dir dann, wo der Fehler ist.

Du bist hier reingekommen, hast uns zu verstehen gegeben dass du vom 
Timer nicht die geringste Ahnung hast und bist dann noch pampig geworden 
als man dich darauf hingewiesen hat.

von Thomas E. (thomase)


Lesenswert?

c-hater schrieb:
> Dann ändere das. Lies' das Datenblatt einfach so oft, bis du's begriffen
> hast.

@Anfänger: Mach dir nichts draus. So ist er immer, wenn seine Domina 
frei hat.

Anfänger schrieb:
> Mach ich das
> jetzt mit ocr2? also den Pegel Wechsel. Und wo trage ich die max
> Laufzeit ein.also für die ganze Periode

Das kann der Atmega8 mit Timer2 nicht.
Entweder nagelst du die alte Gurke an die Wand und besorgst dir einen 
Atmega 48/88/168/328 oder nimmst den Waveform Mode 14 oder 15 des 
Timer1.
Natürlich bekommt man das auch mit Timer2 hin. Dazu müsstest du die 
Zeiten im CTC Mode mit Pin Toggle im OCR2 immer hin- und herschalten.

von Karl M. (Gast)


Lesenswert?

Hi Anfänger,

Stichwort PWM Mode mit einer Zykluszeit von 1ms = 900µs+100µs einstellen
und dann in das OCR2X Register 10% des Timer2 Preload Werts setzen.

Der Timer2 Preload richtet sich natürlich nach dem AVR Takt, dem Timer2 
Prescaler und dem Timer2 Preload, dazu steht ein Formel im Datenblatt.

Ok ?

von c-hater (Gast)


Lesenswert?

Anfänger schrieb:

> Was hat Faulheit mit Missverständnis zutun?

Wenn das Missverständnis eben darauf basiert, dass offensichtlich 
Faulheit vorliegt. Die Timer des Mega8 sind recht triviale Hardware, es 
gibt nicht nur das Datenblatt, sondern Hunderte andere Quellen im 
Internet, die den Umgang damit mehr oder weniger gut erklären. Wenn man 
sich auf den Arsch setzt und den Kram wirklich verstehen will, kann man 
das an einem Nachmittag schaffen.

Wer den Nachmittag nicht opfert, ist schlicht eins: stinkendfaul. Ende 
der Ansage.

von Thomas E. (thomase)


Lesenswert?

Karl M. schrieb:
> Ok ?

Ne, das kann der Timer2 nicht. Der Timer2 des Atmega8 ist in etwa so 
beschränkt, wie einige Beiträge in diesem Thread.


c-hater schrieb:
> Ende der Ansage.

Na hoffentlich.

: Bearbeitet durch User
von René H. (Gast)


Lesenswert?

Thomas E. schrieb:
> @Anfänger: Mach dir nichts draus. So ist er immer, wenn seine Domina
> frei hat.

:)

von Anfänger (Gast)


Lesenswert?

Also kann man beim timer2 nicht wie beim timer1 eine feste Obergrenze 
für den Zähler des Timers nutzen. Also zählt er immer bis 255

von Anfänger (Gast)


Lesenswert?

Also kann ich dort nur den fast pwm Mode nutzen sprich ich kann sagen
0-ocr2 ist high
Und von
Ocr2 bis 255 ist low

Aber ich kann nicht sagen von
0-Ocr2 high
Und von
ocr2 - zähle nur bis 130.

Hab ich das richtig verstanden.

von Thomas E. (thomase)


Lesenswert?

Anfänger schrieb:
> Also kann man beim timer2 nicht wie beim timer1 eine feste
> Obergrenze
> für den Zähler des Timers nutzen. Also zählt er immer bis 255

Ja. Den Top kannst du nur im CTC Mode einstellen. Mit ein wenig 
Softwareunterstützung kanst du deine Zeiten auch damit erzeugen.

Die Atmega 48/88/168/328 können diesen PWM Mode mit allen 3 Timern.

von Anfänger (Gast)


Lesenswert?

Wie sieht es mit atmega16 aus kann der das den? Oder ein 644PA die 
beiden hätte ich noch hier.

von Anfänger (Gast)


Lesenswert?

Software seitiges wäre dann via interrupt denk ich mal auf 100us pro 
interrupt und dann per if Anweisung von 0-10 zählen und nur bei 0 auf 
high bei 1 auf low und bis 10 nix machen.

von Thomas E. (thomase)


Lesenswert?

Beim 16er weiß ich das nicht. Aber der 644 kann das mit allen 3 Timern.

von Anfänger (Gast)


Lesenswert?

Ok dann werd ich den mal nutzen. Wie heißt diese Funktion eigentlich die 
der timer machen muss um top einstellen zu können?

von Thomas E. (thomase)


Lesenswert?

Anfänger schrieb:
> Software seitiges wäre dann via interrupt denk ich mal auf 100us pro
> interrupt und dann per if Anweisung von 0-10 zählen und nur bei 0 auf
> high bei 1 auf low und bis 10 nix machen.

Ja, ginge auch. Geht aber einfacher.

Du lädst in OCR den Wert für 100µs, wenn er hochgelaufen ist, toggelt 
der Pin und der Timer löst einen Interrupt aus. In der ISR setzt du dann 
den Wert im OCR auf 900µs. Dann läuft er hoch, toggelt, Interrupt, OCR 
auf 100µs und so weiter und so fort.

Anfänger schrieb:
> Ok dann werd ich den mal nutzen. Wie heißt diese Funktion eigentlich die
> der timer machen muss um top einstellen zu können?

Das sind die Waveform Modes. Dafür gibt es Tabellen im Datenblatt.

: Bearbeitet durch User
von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Thomas E. schrieb:
> Karl M. schrieb:
>> Ok ?
>
> Ne, das kann der Timer2 nicht. Der Timer2 des Atmega8 ist in etwa so
> beschränkt, wie einige Beiträge in diesem Thread.
>
>
> c-hater schrieb:
>> Ende der Ansage.
>
> Na hoffentlich.

 Und was war falsch in seiner Antwort ?
 Soll er dem TO das DaBla vor dem Schlafen vorlesen ?

 Entweder man hat es einigermassen kapiert, dann probiert man rum
 bis es klappt oder man hat es nicht kapiert, dann wird nochmal im
 DaBla nachgeschaut oder bisschen an der Tante Google rumgeritten -
 es gibt mehr als genug Beispiele im Net.

: Bearbeitet durch User
von Thomas E. (thomase)


Lesenswert?

Marc V. schrieb:
> Soll er dem TO das DaBla vor dem Schlafen vorlesen ?

Nein. Ausdrucken, zusammenrollen und dir in eine rückseitige 
Körperöffnung stecken. Eine echte Win-Win-Situation.

: Bearbeitet durch User
von René H. (Gast)


Lesenswert?

Marc V. schrieb:
> Und was war falsch in seiner Antwort ?
>  Soll er dem TO das DaBla vor dem Schlafen vorlesen ?

Du meinst das Datenbuch ;). Muss er nicht, aber wenn man es nicht direkt 
versteht, kann man versuchen es zu erklären oder patzig reagieren.

Der Spruch, lies das Datenblatt ist langsam durch. Man kann und muss 
darauf verweisen, aber patzig ist nicht nötig und arrogant.

Grüsse,
René

von Anfänger (Gast)


Lesenswert?

Netter Umgangston hier.

Probieren ist gut aber erklären und Verständnis bringt mehr.

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Thomas E. schrieb:
> Nein. Ausdrucken, zusammenrollen und dir in eine rückseitige
> Körperöffnung stecken. Eine echte Win-Win-Situation.

 Tja, das ist dein Niveau.

 Aber, das was dich zur Ekstase bringt, ist für normale Menschen keine
 Win-Win-Situation...

von Thomas E. (thomase)


Lesenswert?

Marc V. schrieb:
> Tja, das ist dein Niveau.

Jep. Aber dein A...

von René H. (Gast)


Lesenswert?

Anfänger schrieb:
> Netter Umgangston hier.

Das musst du nicht ernst nehmen.

Manche meinen wohl, dass sie damit als Cracks angesehen werden. Es nervt 
aber nur.

Grüsse,
René

von Dieter (Gast)


Lesenswert?

Ich hab mal eine Frage zu den Registern es gibt ja 3 Stück zum 
einstellen für die PWM ocr tcnt ICr was machen die genau?

Ocr ist doch Zeitpunkt des Pegel Wechsels von high auf Low am ocr Pin 
icr ist top einstellen und tcnt?

von Thomas E. (thomase)


Lesenswert?

Dieter schrieb:
> Ocr ist doch Zeitpunkt des Pegel Wechsels von high auf Low am ocr Pin
> icr ist top einstellen und tcnt?

TCNT ist die Uhr, mit der verglichen wird. Wenn OCRxx = TCNTx passiert 
etwas. Top ist im Normalzustand das Ende des TCNT-Registers, also 255 
oder 65535. Mit OCRxA oder, falls vorhanden, ICR kann man diesen Topwert 
auch individuell festlegen. Dann läuft der TCNT nur bis zu diesem Wert 
und geht dann wieder auf 0.

Legt man den Topwert mit OCRxA fest, wird der laufende TCNT mit OCRxB 
verglichen. Benutzt man ICR, kann sowohl mit OCRxA als auch mit OCRxB 
verglichen werden. In diesem Fall hat man 2 PWM-Kanäle.

Der Unterschied zwischen ICR und OCRxA liegt darin, daß die beiden 
8-Bit-Register des ICR nacheinander beschrieben werden, die des OCRxA 
gleichzeitig. Ändert man im laufenden Betrieb den Topwert, kann das im 
ersten Fall zu unerwünschten Effekten führen.

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
Noch kein Account? Hier anmelden.