Forum: Mikrocontroller und Digitale Elektronik Problem mit Interrupts - Quelltext


von Max (Gast)


Angehängte Dateien:

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.

von Max (Gast)


Lesenswert?

argh, das sollte eine Antwort in einem anderen Thread sein.

Diesen Thread bitte löschen..

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.