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


von Uwe Kullmann (Gast)


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

von LinkinPark (Gast)


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.

von Hannes L. (hannes)


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

...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.