Hallo zusammen! Ich möchte einen Motor mit einem PWM Signal ansteuern , das ganz soll über Bluetooth und mit einen PC angesteuert werden. Es werden Zeichen über die usart gesendet pro 'w' soll das Vergleichsregiester OCR1A um 5 erhöht werden dadurch wird der Motor beschleunigt. Bis hier her funktioniert mein Programm super , aber ich möchte wenn man am PC die taste 'w' wieder losläst dann soll das Vergleichsregiester auf 0 gesetzt werden und der Motor dadurch gestoppt werden Leider funktioniert das nicht Ich habe schon einigesversucht , komme aber leider zu keiner Lösung Bitte um Hilfe!! MFG Daniel
Daniel L. schrieb: > Leider funktioniert das nicht Versetze dich mal in die Lage des µC. Woran soll der erkennen, dass die Taste 'w' losgelassen wird? Er kann wissen, dass die Autorepeat-Funktion des PC bei gedrückter Taste alle xxx Millisekunden ein 'w' zur Schnittstelle sendet und daraus schließen, dass die Taste losgelassen wurde, wenn xxx + delta Millisekunden kein 'w' Zeichen auf dem UART eingetroffen ist. Du mußt also nach Empfang eines 'w' einen Wecker (Timer) stellen, der Bescheid sagt, wenn xxx + delta Millisekunden um sind.
damit der uc weiß das die Taste 'w' losgelassen ist habe ich, wenn ein 'w' empfangen wird , w_timeout auf 0 gesetzt. Alle 2 ms wird w_timeout um eins erhöht . Alse wenn w_timeout größe als 15 ist wird das vergleichsregiester gelöscht dh wenn jetzt 30 ms kein 'w' empfangen wird, wird das vergleichsregiester gelöscht .... Ich dachte so weiß der uc wenn die taste losgelassen wird
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.