www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Nochmal Atmega32 und Timer 1: Compare-Pins zurücksetzen


Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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...

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Olaf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups...

COM1x, FOC1 natürlich und Seite 94...

Autor: Harald (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.