Hallo, ich würde gerne über einen Hallgeber den stand des Schwungrades auslesen. Dies kann man mit Timer realisieren, wie ich das gelesen habe. Das Schwungrad besitzt eine Doppelverzahnung (2x kurtz Impuls ). Dieser ist aber wichtig um den korrekten Zündzeitpunkt zu ermitteln, nur leider weiß ich nicht wie ich diesen "2x kurtz Impuls" als auslöser einer Funktion z.B. "Zünden" herrausfiltern kann. Der Rest des Rades hat eine gleichmäßige Verzahnung also immer (Low, HI) abwechselnd bis zum Doppelpuls. Ungefähre Impulsstruktur : ...---x---x---x---X-X---x---x---x---x... (Die Drehzahl ändert sich ständig) Habe schon länger im Netz nach einer lösung gesucht und leider nichts gefunden. Ich hoffe Ihr könnt mir da weiterhelfen, gerne auch Links. Ich benutze den Atmega32-PU mit einer 16 Mhz Taktung. Vielen Dank!!! Jan
Gast
#3684134
Bleistift und Pspier. Aufmalen nachdenken, danach programmieren. Das macht man so......
Gast
#3684238
Jan Schnabel schrieb: > Ich benutze den Atmega32-PU mit einer 16 Mhz Taktung. Dann musst du damit jetzt nur noch die Länge deiner Pulse ausmessen und wenn zwei auffällig "kurtze" dabei sind, "Bescheid" sagen. Bei der statistischen Bewertung deine Pulslängen könnte dir der Median hilfreich sein, da er sich durch die beiden "kurtzen" Pulse nicht gleich ändert.
Gast
#3684243
Kurtz??
Gast
#3684269
Uhrmacher schrieb: > Kurtz?? Das Gegenteil von "lahng" - ist doch wohl klar ;-)
Gast
#3684557
Wenn dir das Erfassen des Pulsabstandes schon ein Rätsel ist,
wird es schwierig, dir zu helfen.
Ansonsten:
ABSTAND_ALT = sehr kleiner Wert
Schleife:
ABSTAND_NEU = Neue Messung Pulsabstand
ABSTAND_NEU < ABSTAND_ALT/2 ?
Ja: Doppelpuls erkannt - Zündung aulösen!
Nein: ABSTAND_NEU nach ABSTAND_ALT kopieren
GOTO Schleife
Gast
#3684817
Nö, lanck;-)
Hallo zusammen, ich versuche gerade eine Ansteuerung eines Doppelpulsmessplatzes zu schreiben. Ich bin mir nicht ganz sicher ob ich das mit dem mega328p und C++ realisieren kann. Ziel soll die einstellung der Pulse/Totzeit auf < 1us sein. high ------- ------- low ______| |___________| |_______ t | <1us | <1us | <1us | Ich frage mich ob ein switch/case dafür schnell genug ist. Denkt ihr das kann Funktionieren? Mein Ansatz ist: Timer1 im CTC mode;
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
8 Jahre alten toten Thread wieder ausgebuddelt? Reschbeggd.
War am ehesten das was ich suche. Besser neu aufmachen?
David W. schrieb: > Besser neu aufmachen? Ja, mache eine neuen Thread auf.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.