Guten Abend, mich interessiert eine Info, welche ich dem Datenblatt nicht entnehmen kann. Nehmen wir als Beispiel einen Atmega8 Prozessor. Dort ist am Port PB1 der OC1A Pin, der von einem Compare Match bei entsprechender Configuration low oder high gesetzt werden kann (s. S96): COM1A1 | COM1A0 (0|0) normale Port Funktionalität COM1A1 | COM1A0 (0|1) toggle on compare match COM1A1 | COM1A0 (1|0) low on compare match COM1A1 | COM1A0 (1|1) high on compare match Ergänzend steht dort auch: "The COM1A1:0 and COM1B1:0 control the Output Compare Pins (OC1A and OC1B respectively) behavior. If one or both of the COM1A1:0 bits are written to one, the OC1A output overrides the normal port functionality of the I/O pin it is connected to." Angenommen die beiden obigen bit COM1A1 | COM1A0 sind noch auf 0, d.h. normale Port-Funktion. Den Port setze ich dann als Ausgang (DDB1 auf 1) und den Port anschließend auf high PB1 = 1. Nun setzt mein Programm im Verlauf die Bits COM1A1 | COM1A0 (0|1), sprich togglen. Das Programm toggelt alles ein paar mal, bis das Programm wieder COM1A0 löscht und damit wieder die normale Port Funktionalität aktiviert. Das letzte toggeln soll den Port aber auf low (nehmen wir dies einfach einmal an). Die Frage ist, welchen Zustand hat der Port nun? Ist er weiterhin low wie nach dem toggeln oder durch das vorherige setzen des Ports auf high (als er noch nicht durch das Compare Match kontrolliert wurde, sondern als normale Port Funktion gearbeitet hat) nun wieder high?
Die Zustände zu "Normale Port Funktion" und "Timer Output" merkt sich der Controller getrennt. Wenn der Output sich also durch den Timer ändert, beeinflusst das nicht den Inhalt vom PORT-Register.
Martin schrieb: > Die Frage ist, welchen Zustand hat der Port nun? Ist er weiterhin low > wie nach dem toggeln oder durch das vorherige setzen des Ports auf high > (als er noch nicht durch das Compare Match kontrolliert wurde, sondern > als normale Port Funktion gearbeitet hat) nun wieder high? Die Frage sollte das Schaltbild der I/O-Ports beantworten. Seite 52 bzw. 56 im Datenblatt. Die alternate functions sind dem Ausgangs-FlipFlop nachgeschaltet. Demnach sollte der Portpin den ursprünglichenn Zustand einnehmen, sobald die COM-Geschichte abgestellt wurde.
Danke euch beiden, das hat mir geholfen und meine Frage beantwortet.
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.