www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Timing messen mit Mega32 und Bascom


Autor: Uwe Kullmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
ich möchte mit einem Mega32 ein 100ms oder 200ms DCF Signal ausmessen,
das jede Sekunde einmal gesendet wird.

Ich möchte Timer1 mit der fallenden Flanke des Signals starten und mit
steigender Flanke soll der Zählwert kopiert werden(+ Interrupt).

Geht aber irgendwie nicht. Muss Ich T1 und ICP1 pins zusammenschalten?
Wie muss ich die Timer/Counter in Bascom richtig einstellen (8Mhz
takt)?

Danke!
 Gruß Uwe

Autor: LinkinPark (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich weis nicht ob es nur für mich unverständlich geschrieben ist oder ob
du da was verwechselt hast: Das Signal (die Uhrzeit ?) wird nicht jede
Sekunde gesendet. Es wird jede Minute gesendet. Pro Sekunde wird 1 Bit
gesendet.

Pins musst du keine Zusamenschalten. Du musst mit einen Timer jede
Sekunde einen Interrupt auslösen, mit dem anderen misst du die Zeit bis
zur L/H Flanke. Dann kannst du entscheiden ob es eine 1 oder eine 0 war.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau dir mal im Datenblatt des AVRs das Input-Capture von Timer1 an.

In der Initialisierung schaltet man den ICP-Interrupt frei und stellt
auf steigende Flanke. Natürlich muss man noch den Timer mit geeignetem
Vorteiler starten.

In der ISR liest man das ICP-Register (16-Bit) aus, subtrahiert davon
den (gemerkten) vorherigen Wert und schaltet die Flanke für die nächste
Messung um. Man erhält nun abwechselnd Werte von 100 oder 200ms (gültige
Bits) bzw. 800-900ms (Pause zwischen 2 Bits) oder 1800-1900ms
(Synchronpause zwischen 2 Telegrammen). Beim Auftreten der Syncpause
wird der Shiftbuffer (nach Sicherung zum Auswerten) gelöscht, bei
gültige Bitbreiten schiebt man das Bit in den Shiftbuffer.

Falls man das noch nicht ganz verstanden hat, schaut man in der
Codesammlung nach, da gibt es mindestens 1 gutes Beispiel.
http://www.mikrocontroller.net/forum/read-4-23408.html#new

...

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.