Forum: Mikrocontroller und Digitale Elektronik Problem PWM und USART


von Daniel L. (daniel_l49)


Angehängte Dateien:

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

von Michael (Gast)


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.

von Daniel L. (daniel_l49)


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

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
Noch kein Account? Hier anmelden.