Forum: Mikrocontroller und Digitale Elektronik Impulslängenmessung mit Timer1


von Frank Szatkowski (Gast)


Lesenswert?

Ich möchte unter Bascom eine Impulslänge im Bereich von 150-250µs
möglichst genau messen.
Ich benutze dafür einen Mega128 mit einer Taktrate von 7.3728 MHz.
Bisher sind meine Experimente mit dem Timer1 fehlgeschlagen.
Mit der Onlinehilfe komme ich nicht weiter.

von crazy horse (Gast)


Lesenswert?

leg das Signal in den ICP-Eingang, Timer mit max. Frequenz, also ohne
Vorteiler frei laufen lassen. In der ICP-ISR kannst du dann die
Differenz  zwischen 2 ICP-Ereignissen bilden.
Willst du nur die low- oder high-Zeit eines Signals messen, musst du in
der ISR die aktive Flanke für das ICP-Ereignis umprogrammieren.
Bsp für low-Pegel messen:
ICP auf fallende Flanke setzen
fallende Flanke kommt
ICP-Timerstand merken
ICP auf steigende Flanke setzen
steigende Flanke kommt
ICP_neu - ICP_alt bilden -> fertig

von Frank Szatkowski (Gast)


Lesenswert?

Schönen Dank für deine Hilfe.
Das hat mir viel geholfen.

von Stefan J. (Gast)


Lesenswert?

Wie kann ich denn die zu erkenende Flanke änderen ?
(unter Bascom)

Muss ich den Timer komplett noch Konfigurieren ?
(Config Timer1= Timer, Capture Edge = Rising, Prescale = .....)

Wird dadurch nicht der Timer wieder auf 0 gesetzt ?

Oder gibt es einen extra Befehl um die Flankenerkennung
des ICP1 zu ändern ?


MfG
Stefan

von Netbird (Gast)


Lesenswert?

Hallo,

der Befehl heißt EDGE =RISING bzw. EDGE=FALLING
Genuaeres dazu findest du bei C.Kühnel, AVR RICS Mikrocontroller mit
BASCOM, 2. (!) Auflage auf S. 108 und eine Anwendung ab S.155

Gruß,Netbird

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.