Compare Match Mode und zurückswitchen in normalen Mode

Gast #2972367
Lesenswert?

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?
Gast #2972380
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren