Problem PWM und USART

OP #3384064
Lesenswert?

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
Angehängte Dateien:
Gast #3384087
Lesenswert?

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.
OP #3384114
Lesenswert?

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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren