Problem mit Interrupts - Quelltext

Gast #1704251
Lesenswert?

Im Anhang der relevante Teil des momentanen Quelltexts.

Das ursprüngliche Problem scheint gelöst zu sein...

Auch bei ausgeschaltetem Comparematch wird das Flag OCF1A gesetzt, bei 
erneutem einschalten des Comparematch kann der Interrupt dann evtl. 
direkt ausgelöst werden.

Nun funktioniert soweit alles, allerdings nur mit einer fest 
eingestellen Strobetime (490 = ~ 61.25 µS bei 8Mhz und Prescaler 1). 
Schreibe ich die zuvor ermittelte Strobetime in OCR1A wird der Interrupt 
viel zu früh ausgelöst (ermittelt mit Logic Analyzer), wobei es bei den 
ersten 2-3 Datenpaketen noch richtig funktioniert, danach aber nicht 
mehr.

Der ermittelte Wert liegt aber eben in diesem Bereich (490), auch dann 
wenn es nicht mehr funktioniert.

Da die strobeTime sich aber mit der Temperatur ändern kann funktioniert 
das nat. nur für einen bestimmten Temperaturbereich, deswegen wärs gut 
wenn ich das auch noch hinbekomme.

Die Zeit mit Inputcapture zu ermitteln wäre sicherlich auch nicht 
schlecht, allerdings bin ich da ja an einen festen Pin (zb ICP1) 
gebunden. Dort habe ich dann wiederum keine Edge-Interrupts für das 
samplen der Bits. Die Interruptsreaktionszeit wird sich allerdings in 
einem ziemlich engen Rahmen bewegen, daher kann man sie auch ermitteln 
und dann von der Strobetime abziehen.
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren