Hallo zusammen, ich habe ein PWM-Problem. Ich versuche bei einem Mega128 (16 MHz) an Pin OC3A (Port E.3) ein PWM Signal zu erzeugen (letzendlich soll das dann über ein RC-Glied gefilter zu einem Signal von 0-10V führen). Irgendwie blick ich es nicht mit den ganzen Bits und Registern. Mein Code sieht so aus: int main() { DDRE = (1 << PE3); TCCR3A = (0<<WGM31)|(1<<WGM30)|(1<<COM3C1); TCCR3B = (0<<CS32) | (1<<CS31) | (0<<CS30) | (1<<WGM33); OCR3A = 10; OCR3C = 200; while (1) { ; } return 0; } Was ist daran falsch ? Greets Karlheinz
Wenn Du PWM-Modus 9 einstellst, dann kannst Du OC3A nicht verwenden, weil der TOP-Wert in diesem Modus in OCR3A steht. Wenn Du OC3A unbedingt verwenden willst, musst Du eine Betriebsart auswählen, bei der OCR3A nicht für TOP benötigt wird. Wenn Du z.B. Modus 8 nimmst, hast Du exakt dasselbe, nur dass TOP dabei in ICR1 steht und Du OC3A als PWM-Ausgang verwenden kannst. Ansonsten kannst Du in Modus 9 immer noch OC3B und C als Ausgänge benutzen.
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.