Fast PWM Mode Atmega32

Gast #854503
Lesenswert?
• ▲
▼
Hallo.
Ich will ein sehr spezielles Bussystem nachbilden:
1.2 KHz, die länge des Low level bestimmt ob es sich um eine 0,1 oder 
syncbit handelt. Ich hab ein Atmega32 auf einem STK500 (3,686MHz).
ich wollte den Fast pwm Mode verwenden damit ich nach jeder Periode 
(also jedes Bit) die Pulsweite verändern kann über das OCR0 register.

Aber wie komm ich auf meine Frequenz ? kann ich was unternehmen damit er 
nicht bis 256 hochzählt da ich mit den prescaler nicht hinkomm?
Moderator Persönliche Seite #854509
Lesenswert?
• ▲
▼
Du könntest ihn durch einen ATmega324P upgraden, der besitzt die
Möglichkeit, als Alternative zu TOP = 0xFF im Fast PWM mode noch
TOP = OCR0A zu benutzen.  Damit kann man die Frequenz einstellen.

Beim ATmega32 bliebe höchstens die Möglichkeit, den Timer mit
dem Overflow vorzubelegen, um so die Zählweite zu verkürzen, und
die Impulsgenerierung dann nicht als Fast PWM, sondern als normale
Pinfunktion des OC0-Pins vorzunehmen.  Das leidet aber unter einem
Jitter, der durch mögliche Verzögerungen in der Interruptannahme
bedingt ist.
Gast #854559
Lesenswert?
• ▲
▼
Vielen Dank
Das hört sich gut an aber ich kanns nicht trotz datasheet.

DDRB = 0xff;  // ausgang
TCCR0 = 0x7a; // Fast mode, clk/8
OCR0 = 0x80; // verhältnis HIGH/LOW 1:1

Welchen Modus bzw. Register muss ich nun noch setzen?
Moderator Persönliche Seite #854569
Lesenswert?
• ▲
▼
Es ging um Timer 1, du bist immer noch bei Timer 0.

Der PWM beim Timer 0 im ATmega32 kann nur als 8-bit-PWM betrieben
werden.  Wenn Timer 0 und ATmega32 für dich gesetzt sind, kannst
du das bestenfalls in Software emulieren, siehe oben.

Wenn Timer 0 gesetzt ist, es aber ein pinkompatibler AVR sein darf,
dann kannst du einen ATmega324P nehmen.  Er hat einen Mode 7, bei
dem er als Fast PWM arbeitet und die Zählweite mit OCR0A begrenzt
wird.  Der PWM-Ausgang ist dann OC0B.

Wenn der ATmega32 gesetzt ist, es aber auch Timer 1 sein darf, dann
guck dir die Modes 14 und 15 im Timer 1 an.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren