Hallo! Ich benutze die im Anhang einzusehende Schaltung mit einem Reed-Kontakt als Tachosensor. Bislang werkelte das Ganze an einem Atmega32. Hier habe ich die Register wie folgt konfiguriert: //fallende flanke löst tacho-interrupt aus MCUCR |= (1<<ISC01); //enable interrupt on int0 GIMSK |= (1<<INT0); Nun bin ich auf einen Atmega1280 umgestiegen und habe das Problem, dass der Interrupt so lang immer wieder ausgelöst wird, wie der Magnet den Reed-Kontakt schliesst. Das Ergebnis sind natürlich absurd hohe Werte für die Geschwindigkeit da die Zeit zwischen zwei Flanken minimal ist. Beim Atmega1280 schreibe ich folgendes in die Register: EICRB = (1<<ISC61); //fallende Flanke EIMSK = (1<<INT6); //enable interrupt Das sollte doch eigentlich gleichbedeutend sein? Das einzige was sich außerdem geändert hat, ist, dass ich vom NE555 im DIP auf einen NE555 im SO-8 Gehäuse umgestiegen bin und die Leitung zwischen NE555 und Reed deutlich länger geworden ist. Hat jemand eine Idee, was ich falsch mache?
Hi, noch da? Wozu er 555er? Das kannste mit einem Kondensator direkt am INT0 des AVR betreiben, hab ich schon tausende Kilometer am Motorrad praktiziert. Pullup 4,7K an Plus, Elko 1-2,2µF an Masse. Reed parallel und auf fallende Flanke triggern. Funzt tadellos! Siehe Link: http://www.advrider.com/forums/showthread.php?t=400288&page=1 Dort kann man meinen Zähler sehen, der funktioniert mit einem Reed Kontakt an der Gabel und einem einzigen Magneten an der Bremsscheibe. Misst auf den Milimeter genau, ich addiere da pro Umdrehung einen Radumfang milimetergenau auf. Der Zähler hat sich dabei VOLL bewährt, EINWANDFREI und ohne 555. Gruss Thomas
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.