Hallo, ich versuche gerade das Tachosignal von einem Lüfter mit BASCOM auszuwerten. Dazu habe ich testweise an PortD.2 die gelbe Signalleitung vom Lüfter über einen 10k Pull-Up und an PortB.1 eine LED angeschlossen. Die LED ist an, wenn PortB.1 auf GND zieht. Hier mein Code: $regfile = "M8def.dat" $crystal = 8000000 $hwstack = 100 $swstack = 100 $framesize = 100 Config Pind.2 = Input Config Portb.1 = Output On Int0 On_int0 Config Int0 = Rising Enable Int0 Enable Interrupts Do If Pind.2 = 1 Then Portb.1 = 1 End If Loop On_int0: Portb.1 = 0 Return End Das Tachosignal sieht so aus wie auf dem angehängten Bild. Eigentlich sollte ich das Signal doch so auch an PortB.1 sehen können? Der AVR vergisst aber irgendwie manche Perioden des Signals. Was mache ich falsch? Lg, Das Schnitzel
Ich verstehe nicht ganz, warum Du die Led bei steigender Flanke im IR auf 0 setzt und gleichzeitig im Programm auf 1. Ist das eine Art Wettrennen?
Ich muss das Signal ja auch mal wieder irgendwie zurücksetzen? Sonst würde ja die LED bei der ersten steigenden Flanke eingeschaltet und dann nie wieder ausgeschaltet. Sorry, dass die Flanken auf Kanal 2 nicht sauber sind, da hat mein Oszi einen Defekt. Die Ausfälle sind zufällig, ist nicht immer die erste Flanke.
warum zählst du die Impulse nicht eine gewisse Zeit lang und multiplizierst das ganze danach ? So zeitkritisch wird das nicht sein, das du auf das Ergebnis nicht 1sec warten kannst. zB. 1sec lang Impulse zählen bei 3000U/min = 6000 Impulse/min = 100 Pulse/sec bei 600U/min = 1200 Impulse/min = 20 Pulse/sec mußt nur aufpassen, falls du ein LCD verwendest, während der Anzeige die Interrupts zu disablen, sonst flipt das LCD aus und zeigt nur noch Müll.
Stimmt, danke :) und was ist wenn da dann auch Impulse "übersehen" werden? Eigentlich dürfte das doch auch mit meinem Beispiel nicht passieren, da ich den Interrupt verwende?
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.

