Hallo, ich möchte den TIMER1 nutzen um mir am PIN 8 (OC1D) ein PWM-Signal zu erzeugen. Die Register habe ich so konfiguriert: Ddra = &B11111000 'Port A -> Bit 3 bis 7 als Ausgang Porta = &B00000000 Ddrb = &B00001111 'Port B -> Bit 0 bis 3 als Ausgang Portb = &B00000000 Tccr1a = &B00000000 Tccr1b = &B00000001 Tccr1c = &B00001001 Tccr1d = &B00000000 aber am PIN 8 tut sich nix !? Sieht jemand mein Problem ? Vielen Dank für Eure Hilfe ! Gruß Marcus
Marcus schrieb: > aber am PIN 8 tut sich nix !? > > Sieht jemand mein Problem ? 1) Pin ist nicht auf Ausgang geschaltet. 2) Duty-Cycle ist 0.
Zuerst einmal ist es eine Katastrophe, wie du Code schreibst. Nutze doch einfach mal Schiebeoperationen, so sieht man auf einen Blick, was du eingestellt hast. was erkennst du, wenn du Marcus schrieb: > Tccr1b = &B00000001 liest? Richtig, gar nix. Was erkennst du, wenn du TCCR1B = (1<<CS00); liest? richtig, Prescaler auf 1 gestellt. Ist zum Schluss beides das gleiche, aber man erkennt es einfach viel besser. Zu deinem Problem. Schließ einfach ne LED an irgend einen Port an, aktiviere den Overflow Interrupt für Timer1 und toggle die LED im Interrupt. Wenn das geht, weist du erstmal, das der Timer überhaupt läuft. Wenn das passt, dann solltest du dir nochmal das Register TCCR1E ansehen und natürlich auch wie schon von meinem Vorredner erwähnt einen PWM-wert in ein OCRXX Register schreiben.. MfG Dennis
Hallo Stefan, vielen Dank für Deine Antwort. Da hat man wieder einmal den Wald vor lauter Bäumen nicht gesehen. Ich war nur auf die TCCR1X-Register fixiert und habe in den anderen Registern den Fehler nicht gesucht. Gruß Marcus
Dennis H. schrieb: > Was erkennst du, wenn du > > TCCR1B = (1<<CS00); > > liest? richtig, Prescaler auf 1 gestellt. Dumm nur, dass sein Compiler das aber nicht erkennt. ;-)
Stefan Ernst schrieb: > Dennis H. schrieb: >> Was erkennst du, wenn du >> >> TCCR1B = (1<<CS00); >> >> liest? richtig, Prescaler auf 1 gestellt. > > Dumm nur, dass sein Compiler das aber nicht erkennt. Naja, ich kenn diese Formatierung irgendwie nicht, wenn es denn eine ist, ich vermute vielleicht Bascom? Nichts desto trotz kann man selbst dann als Kommentar dahinter schreiben, was man an welcher Stelle gemacht hat. MfG Dennis
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.