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
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
Hi
Korrektur:
>Also musst du auch einen OCR0A auch einen Wert zuweisen.
->Also musst du OCR0A auch einen Wert zuweisen.
MfG Spess
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.