Hallo,
nachdem ich jetzt allen Hinweise hier aus dem Forum nachgegangen bin und
damit auch den größten Teil der Probleme lösen konnte, bleibt nun noch
immer in einem speziellen Fall die Notwendigkeit, die Compare-Ausgänge
von Timer1 im Normalmodus zurückzusetzen (Das Problem mit allen anderne
Modi ist, daß entweder die Compare-Ausgänge auch nicht automatisch bei
Überlauf zurückgesetzt werden oder aber die Compare-Register nicht
sofort sondern erst bei Top oder Bottom upgedated werden).
Leider ist der Stand noch immer der, daß die Compare-Ausgänge im
Normalmodus zwar gesetzt werden, ich aber im Datenblatt nirgende eine
Möglichekeit finden konnte, sie wieder zurückzusetzen.
Das muss doch irgendwie gehen, sonst wäre ja die Compare-Output-Funktion
in Verbindung mit dem Normalmodus vollkommen sinnlos, oder?
Gruß,
Harald
Harald wrote:
> Leider ist der Stand noch immer der, daß die Compare-Ausgänge im> Normalmodus zwar gesetzt werden, ich aber im Datenblatt nirgende eine> Möglichekeit finden konnte, sie wieder zurückzusetzen.
Im Datenblatt gibt es eine Tabelle (in meiner Version ist das Tabelle
44, allerdings ist meine derzeitige Version des DS von vor 2 Jahren). Da
steht drin, wie man in den nicht-PWM-Betriebsarten die COM-Bits setzen
kann, damit der betreffende Pin beim Compare gesetzt, gelöscht oder
getoggelt werden kann.
Hallo,
die Tabelle kenne ich, aber das Problem ist nicht das Verhalten der
Pins, wenn ein Compare Match auftritt, sondern wie ich sie zu einem
späteren Zeitpunkt wieder zurücksetzen kann.
Wenn ich das alles z.B. so einstelle, daß beim Compare Match OC1A bzw.
OC2A gesetzt werden, dann bleiben die im Normalmodus danach ja gesetzt.
Aber irgendwie muss man sie ja auch wieder zurücksetzen können. Leider
nützt es nichts, sie auf disconnected zu setzen, da dann zwar die Pins
erst mal von der Compare-Logik getrennt sind, aber das zugehörige
Register behält seinen Wert bei. Wenn ich die Pins nun wieder mit der
CC-Logik verbinde, haben sie wieder den selben Pegel wie vor der
Trennung.
Gruß,
Harald
Harald wrote:
> Hallo,>> die Tabelle kenne ich, aber das Problem ist nicht das Verhalten der> Pins, wenn ein Compare Match auftritt, sondern wie ich sie zu einem> späteren Zeitpunkt wieder zurücksetzen kann.
Z.B., indem Du in das Portregister an der betreffenden Stelle eine Null
schreibst...
Hallo,
>Z.B., indem Du in das Portregister an der betreffenden Stelle eine Null>schreibst...
das habe ich bereits versucht, der Ausgang hat nicht darauf reagiert.
Würde auch dem Schaltbild auf S.97, oben (Bild 44) nach so sein; der Pin
gibt, wenn er auf Compare Output eingestellt ist, nicht den Inhalt von
PORTDx sondern von OCnx aus. Ich konnte aber bisher nicht herausfinden,
wie man auf dieses Register zugreift.
Gruß,
Harald
Hi Harald,
Drei Schritte:
1. COM0x auf 'clear' setzen
2. eine '1' in FOC0 schreiben
3. COM0x wieder herstellen.
Nach lesen bei 'Force Output Compare' Seite 70 im PDF.
Hoffe das ist was du suchst
Olaf
Hallo,
>Drei Schritte:>1. COM0x auf 'clear' setzen>2. eine '1' in FOC0 schreiben>3. COM0x wieder herstellen.>>Nach lesen bei 'Force Output Compare' Seite 70 im PDF.>>Hoffe das ist was du suchst
Jepp, das war´s das Ende meiner Sorgen :-)
Gruß,
Harald