Forum: Mikrocontroller und Digitale Elektronik ATTiny2313 Fast PWM


von PMW_Newbie (Gast)


Lesenswert?

Hallo Zusammen,
bei einem ATTiny2313 mit 4MHz soll an PD5(OC0B) soll ein PWM Signal mit 
38,4kHz erscheinen. Leider kommt das Signal nicht.
Wer kann mir bitte helfen?
OC0A soll/kann nicht verwendet werden, da Port B Eingänge auslesen soll.

Anbei das Programm:


#include <stdint.h>
#ifndef F_CPU
#define F_CPU    4000000
#endif
#include <util/delay.h>

int main (void) {

       /* TIMER0 Settings :
       PWM im Inverted Modus => COM0Bx = 1; WGM Modus 7 => Fast PWM
       nur CS00 = 1, da kein Prescaler notwendig */

  TCCR0A |= 1<< COM0B0 | 1<< COM0B1 | 1<< WGM00 | 1 << WGM01;
  TCCR0B |=1<< WGM02 | 1<< CS00;

  DDRD |= (1<<PD5);

  OCR0B = 103;
/*OCR0B = 103 => 4Mhz/38,4kHz = 104,xx < 255 => kein Prescaler */

  while(1){
  };
}





Danke im Voraus
PWM_Newbie

von spess53 (Gast)


Lesenswert?

Hi

Du hast einen PWM-Mode mit OCR0A als Top. Also musst du auch einen OCR0A 
auch einen Wert zuweisen. Oder du nimmst Mode 3.

MfG Spess

von spess53 (Gast)


Lesenswert?

Hi

Korrektur:
>Also musst du auch einen OCR0A auch einen Wert zuweisen.

->Also musst du OCR0A auch einen Wert zuweisen.

MfG Spess

von PMW_Newbie (Gast)


Lesenswert?

Danke,
jetzt läuft es
OCR0A ist die Zählerhöhe = Periodendauer
OCR0B die Impulsdauer vor.


Danke und frohe Ostern

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.