Forum: Mikrocontroller und Digitale Elektronik Timer Verständnisfrage


von Mike (Gast)


Lesenswert?

Hy Leute!

Hab ne Verständnisfrage für euch. Ich betriebe einen Timer2 im FASTPWM 
Modus und will am OCR Pin einen beliebigen Impuls ausgeben. Ich habe im 
TCCR2 Register folgendes eingestellt:

FOC2      WGM20   COM21    COM20    WGM21     CS22   CS21     CS20
 0          1       1         0      1         0      0         1

Mit dieser Kombination (COM21=1 und COM20=0) und auch der letzten 
Kombination(COM21=1 und COM20=1) invertiert er den Ausgang. Die 
Kombination(COM21=0 und COM20=0) kann ich nicht verwenden, da ich sonst 
keinen Ausgang habe, der mir meine Zeitbasis(min 1µ auf High)) erzeugt.
Im Datenblatt vom ATmega8 gibts einen Kombination(COM21=0 und COM20=1) 
die Reserved heisst.

Nun zur Frage. Kann ich den Reserved-Mode verwenden um eigene Impulse zu 
erzeugen dh das mir der Compare Match Interrupt den Zustand des OCR Pins 
nicht verändert??

Eines noch: Ich habe genau diesen Modus(FASTPWM - Timer2 mit Compare 
mAtch Interupt) gewählt, da ich mit anderen Timern nie genau 1µs 
zusammengebracht habe?!?

mfg

von Hannes L. (hannes)


Lesenswert?

Mike wrote:
> Hy Leute!
>
> Hab ne Verständnisfrage für euch.

Für uns??? - Wird das jetzt 'n Quiz?? Was kann man denn gewinnen?

> Ich betriebe einen Timer2

Von welchem PIC sprichst Du?

> im FASTPWM
> Modus und will am OCR Pin einen beliebigen Impuls ausgeben. Ich habe im
> TCCR2 Register folgendes eingestellt:
>
> FOC2      WGM20   COM21    COM20    WGM21     CS22   CS21     CS20
>  0          1       1         0      1         0      0         1
>
> Mit dieser Kombination (COM21=1 und COM20=0) und auch der letzten
> Kombination(COM21=1 und COM20=1) invertiert er den Ausgang. Die
> Kombination(COM21=0 und COM20=0) kann ich nicht verwenden, da ich sonst
> keinen Ausgang habe, der mir meine Zeitbasis(min 1µ auf High)) erzeugt.
> Im Datenblatt vom

> ATmega8

Aha, das gehört aber in den Betreff oder zumindest in die erste Zeile.

> gibts einen Kombination(COM21=0 und COM20=1)
> die Reserved heisst.

Jou, gibt es. Ist für spätere Erweiterungen reserviert. Gilt demnach als 
nicht verfügbar und sollte nicht benutzt werden.

>
> Nun zur Frage. Kann ich den Reserved-Mode verwenden

Nein, der ist ja "reserviert", also nicht verfügbar.

> um eigene Impulse zu
> erzeugen dh das mir der Compare Match Interrupt den Zustand des OCR Pins
> nicht verändert??

Probiere es doch einfach aus. Falls es klappt, dann geh' aber nicht 
davon aus, dass es beim nächsten Exemplar (anderen Fertigungsdatums) 
auch klappt.

>
> Eines noch: Ich habe genau diesen Modus(FASTPWM - Timer2 mit Compare
> mAtch Interupt) gewählt, da ich mit anderen Timern nie genau 1µs
> zusammengebracht habe?!?

Timer2 ist nur ein 8-Bit-Timer. Mit dem 16-Bit-Timer (Timer1) sollte es 
möglich sein, bei 16MHz Quarztakt (diese Information habe ich aus einem 
anderen Thread von Dir) Impulsbreiten von 1ms bis 65535ms per Software 
zu generieren, wobei jeder beliebige Portpin diesen Impuls erzeugen 
kann.

Auch in Hardware sollte das mit Timer1 möglich sein, da gab es im 
anderen Therad bereits gute Lösungsansätze.

>
> mfg

...

von Johannes M. (johnny-m)


Lesenswert?

"Reserved" heißt, dass man diese Konfiguration nicht verwenden soll. Sie 
hat keinerlei Funktion.

Wenn Du nicht willst, dass sich am Pin beim Compare-Match nichts ändert, 
müssen beide COM-Bits 0 sein (Normal Port Operation, OC2 disconnected).

Ansonsten verstehe ich nicht ganz, was Du eigentlich vorhast bzw. wo 
Dein Problem genau liegt.

von teaman (Gast)


Lesenswert?

'Timer value explination
' The timer is a 8Bit timer, it overflows when the timer reaches 256
' The AVR is running at 16000000Hz, the prescaler is 64
' Each tick is 0,004 ms  -  (1 / CPUSpeed in KHz ) * Prescaler
' The timer needs  250 ticks to reach the required time  ( 250 * 0,004 = 
1ms)
' The start value for the timer must be set to 6 so that it will 
overflow at 256 after 250 ticks
' NOTE: The load command does the inversion for you (256-value or 
65536-value)

von Hannes L. (hannes)


Lesenswert?

> Impulsbreiten von 1ms bis 65535ms per Software

Sorry, Korrektur, ich meinte Mikrosekenden (µs)


Beitrag "1µs langen Impuls erzeugen?"
Neuer Name, neues Spiel, neues Glück?

...

von Wolfram Q. (quehl)


Lesenswert?

bei 16 Mhz Quarz sind das aber nur die Hälfte der Zeit. Einen Vorteiler 
von 16 gibt es nicht. Ich komme mit einem 8 Mhz Quarz und Vorteiler 8 
auf die angegebenen Zeiten.

mfg

von Hannes L. (hannes)


Lesenswert?

Wolfram Quehl wrote:
> bei 16 Mhz Quarz sind das aber nur die Hälfte der Zeit. Einen Vorteiler
> von 16 gibt es nicht.

Stimmt. Das kommt davon, wenn man nicht ins Datenblatt schaut. Es gibt 
nämlich auch AVRs mit Vorteiler 1:16 für Timer, z.B. Tiny15. Und bei den 
Megas nutze ich meist die Taktfrequenz für den Timer.

> Ich komme mit einem 8 Mhz Quarz und Vorteiler 8
> auf die angegebenen Zeiten.

Schon, nur reichen dann die verbleibenden 8 Takte nicht mehr für zwei 
Interrupts im Abstand von 1µs... ;-)

>
> mfg

...

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.