Hallo, vielleicht kann mir hier ja jemand weiterhelfen. Also, folgendes einfaches Szenario, Timer im ganz normalen Modus, aber mit Output-Compare am Port: 1. der Port für OC1A wird auf Ausgang und LOW gesetzt 2. Ich initialisiere den Timer so, daß noch kein COMPARE-MATCH erzeugt wird und setze die Compare-Values etc. 3. Ich setze in TCCR1A das COM1A1-Bit. 4. Ich starte den Timer. Was ist nun der aktuelle Zustand von OC1A? Ist es immer noch LOW, oder wird der sofort nach Punkt 3. HIGH, weil der Timer die Kontrolle vom Port übernimmt und da einfach direkt den Compare-Match-Vergleich auf den Ausgang setzt? Das Datenblatt finde ich da etwas unklar: "Clear/set OC1A/OC1B on compare match", aber kein Wort über etwaige Änderungen wenn der Port schon in dem Zustand ist, in den der Compare-Match ihn bringen soll. Vielen Dank für jegliche Hinweise!
Moin, Ich finde das Datenblatt recht klar: Nur in dem Moment, wo der Compare Match zuschlägt, wird der Pin gesetzt bzw. gelöscht. Sonst ergäbe doch auch die Möglichkeit "Toggle on Compare Match" keinen Sinn. Der µC vergleicht ja nicht auf größer oder kleiner, sondern nur auf gleich oder nicht gleich. Ich kann natürlich auch falsch liegen, also hilft nur Ausprobieren :) MfG, Heiko
Die Compare-Unit und das Ausgangslatch sind 2 verschiedene Ausgänge, die dann auf den Pin gegeben werden. Das Ausgangslatch hat daher keinen Einfluß auf den Compare-Ausgang. Daher gibt es die Force-Compare-Bits, um den Compare-Ausgang auf den gewünschten Zustand zu setzen. Peter
was beim compare mit dem OCR pin passiert, kannst du doch einstellen (setzen,löschen,toggle)
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.