Gast
#2189184
Hallo Leute, ich will mit einem ATMega 8 die Länge einer Pulspause messen. Mein Signal ist ein Rechtecksignal mit variabler Frequenz und variablem Tastverhältnis, von diesem Signal möchte ich die Aus-Zeit messen. Ich habe mir schon etliche Beiträge zu diesem Thema durchgelesen, nur jetzt komme ich nicht mehr weiter, ich mache wahrscheinlich einen Denkfehler. Ich gehe jetzt so vor, dass ich den ICP-Pin des Controllers nehme dort erst bei fallender Flanke einen Interrupt auslöse, in der Interruptschleife dann auf steigende Flanke umschalte und dann wiederum auf die positive Flanke warte. Die beiden Timerstände zieh ich dann von einander ab und hab die Differenzzeit, das mache ich aus dem Grund, da ich ja den Anfangsstand des Timers nicht kenne wenn ich nur auf die steigende Flanke triggere. Hinzu kommt, dass ich einen kleinen Überschwinger von maximal etwa 60ms nach jeder positiven Flanke habe, jetzt hab ich den Verdacht, dass hier schon die fallende Flanke erkannt wird, lange bevor sie wirklich kommt. Hier der relevante Code:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
24 | |
25 | |
26 | |
27 | |
28 | |
29 | |
30 | |
31 | |
32 | |
33 | |
34 | |
35 | |
36 | |
37 | |
38 | |
39 | |
40 | |
41 | |
42 | |
Kann das überhaupt so funktionieren? Die nächste Frage wäre, wie bekomme ich es hin, dass der Interrupt für die fallende Flanke für 60ms nach der steigenden Flanke unterdrückt wird? Ich habe es schon über Timer 2 probiert, aber das funktioniert auch nicht wirklich. Ich hoffe Jemand kann mir weiterhelfen. Danke! Gruß, Kai
