Timing messen mit Mega32 und Bascom

Gast #271868
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
Gast #271869
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.
#271870
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

Eine eigene Frage? Dieser Thread ist über 20 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.