Also ist das einfach der Wert, den der Timer momentan hatt?!?Zitat von wkrug
Das mit dem Prescaler ist mir klar..Zitat von wkrug
Also wird einfach eine Interrupt Routine (vom Interrupt COMPARE1A) gestartet, sobald Timer1 den Wert von OCR1A erreicht!?!Zitat von wkrug
Hmm okay, soweit glaub ich ist das klar..
So, ich glaube mit den Vorraussetzungen komm ich schon etwas weiter..
Aber jetzt zurück zum eig. Summensignal.. Das hab ich noch nicht so gaz verstanden.. So im groen und ganzen weiß ich was dein Code usw. bewirken soll, aber so ganz kann ich noch nix damit anfangen..
Also mal Schritt für Schritt..
Als erstes konfiguriere ich Timer1 :
Dann konfiguriere ich den interrupt :Code:Config Timer1 = Timer , Prescale = 8 Enable Timer1
So und hier liegt jetzt langsam mein Problem...Code:Enable OC1A On OC1A Comp_ISR
Da check ich langsam das alles nicht mehr so ganz...
Also wie gesagt so im groben ist mir klar was passieren soll :
OC1A wird ausgelöst, wenn der Summensignal Ausgang auf Low ist, wird er auf High geschaltet und dann wird OC1A = Timer1 + Pulslenge festgelegt und die ISR beendet. Sobald dann die Pulslenge erreicht ist, wird die ISR erneut gestartet, aber da der Summensignal Ausgang auf High ist, wird OC1A = Timer1 + 300 festgelegt um die 0,3ms pause festzulegen.
Und das ganze dann immer durch...
Jetzt weiß ich nur nciht so ganz genau wie ich das im Endeffekt umsetzen soll...
Und eins noch : Die Lenge des "Start-High-Pegels" muss sich ja verändern, damit die Gesammtlenge des Summensignals immer gleich bleibt, die kann man das lösen???
EDIT : Timer1 ist ja dadurch schon belegt, wie kann ich dann die Eingangsimpulse mit einer anständigen Auflösung messen??
Lesezeichen