Hallo wollte eine Impulslänge messen und dazu die input capture funktion eines Atmega8AU im TLQF Gehäuse nutzen. das sollte in Bascom geschrieben sein. Habe es schon oft versucht aber immer wieder alles hingeschmissen und beginne wieder mal von neuem. Habe es mal über INT0 Interrupt gemacht (rising edge) in isr stopt der timer(16bit) wird ausgelesen auf null gesetzt wider gestartet und dann bei der fallenden Flanke wieder gestopt. Jetzt sollte es von steigender zu steigender Flanke messen und mit Input Capture die Impulslänge(Timerstand) in einer Variable abspeichern. Ich kriege aber mit Input Capture nix hin. Im Datenblatt steht, dass die Timerregister in die ICPL/H register kopiert werden ;timer auf null gesetzt und wider gestartet wird... das geht aber irgendwie nicht (bei mir) Bin Dankbar für jede hilfe.
Beim Input-Capture werden die Timerwerte zwar kopiert, aber der Timer wird nicht auf 0 zurückgestellt. Also: Timer laufen lassen, bei der ersten Flanke den Wert auslesen und speichern, bei der zweiten Flanke die Differenz berechnen. /Ernst
[OT] Endlich mal jemand, der BASCOM programmiert und ins Datenblatt geguckt hat... [/OT] Da steht aber nichts davon drin, dass der Timer zurückgesetzt wird. Ernst hat schon Recht: Man zieht einfach den ersten Wert vom zweiten ab. Dass dabei etwas sinvolles herauskommt liegt am beschränkten Wertebereich.
wenn ich einen timer starte müste dann nicht ein register von null raufzählen? und der aktuelle wert in icrl/h kopiert werden? aber es gib immer nur 0 aus?! wie muss denn die konfiguration vom timer aussehen? mfg steff
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.