Hi, ich habe bzw. wollte einen Drehzahlmesser für einen Elektromotor (mit Rotor)bauen, der mit einem MC und einer Lichtschranke funktioniert. Der MC (erstmal ein Mega8) zählt die Anzahl der externen Interrupts pro Sekunde, ausgelöst durch die Lichtschranke, die unterbrochen wird. (in dieser Fall löst der ext. Interrupt bei rising edge aus). Die Sekunde wird durch einen Timer bestimt,der die Messung beendet. Der ermittelte Wert, für höhere Drehzahlen in einem Registerpaar gespeichert, wird mit 60, bzw. bei einem 2-blättrigen Rotor mit 30 multipliziert und dann in 5 ASCII-Zeichen umgewandelt, die per UART/serielle Schnittstelle an Hyperterminal gesendet werden. Zunächst funktionierte es nicht, es kamen keine Signale am PC an. Als ich jedoch während des Timerinterrupts, d.h. der Multiplikation, des Umwandelns und des Sendens(welches glaube ich zu lange dauerte, schon eine neue Sekunde verstrichen war) die Interrupts deaktiviert habe, sendete der Mc schön "brav" nullen an Hyeperterminal. Den ExtInterrupt habe ich erstmal mit einem taster (wie auch im Tutorial) auf masse gezogen, und mit dem loslassen des tasters dann ausgelöst. Nun das Problem: Bei dem ersten Test gab es schon einen fehler, nach den ersten 15 zeichen, (den ersten 3 Nullen) kam eine "wilde" zeichenkette, danach funktionierte es scheinbar korrekt, bei einmaligem drücken des tasters gab es den wert 60, bei schnellem drücken 120 etc, (zu erwarten: vielfache von 60). Beim zweitenm versuch sah die zeichenkette nur noch so aus: 0 0 0 0019{pi (nun etliche sprünge aus dem sichtfenster) ¬c?A& `(?? ¹<ébLK¡! 180 300 300 300 300 300 300 300 300 300 300 300 300 300 300 usw. außerdem "hängte" sich das pogramm immer nach ungefähr 10 Zeilen auf(auch im ertsen Versuch), der Mc sendete gar nicht mehr. Es wäre nett, wenn jemand meinen code durchsehen könnte, oder mir sagen kann, woran der fehler liegen kann. Er mag vielleicht etwas umständlich sein, es ist eines meiner ersten programme. Dank im Voraus, Matthias
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.