Forum: Mikrocontroller und Digitale Elektronik Frequenz von PWM durch hterm steuern


von georgi g. (gofeto)


Lesenswert?

Hallo zusamen, ich brauche eure Hilfe. Ich habe ein Mikrocontroller 
ATmega168, mit dem habe ich schon erfolgreich ein PWM Impuls erzeugt. 
Ich habe schon mit dem Programm Hterm durch den UART String Datei 
geschickt, und der Mikrocontroller hat die zurück geschickt. Jetzt ist 
meine Frage, wie kann ich den Mikrocontroller so programmieren, dass er 
100hz PWM Impuls erzeugt, wenn er ein String Datei durch den hterm z.b 
'100' bekommt. Ich will nur dass jemand ein paar  Hinweise gibt.
Danke in Voraus

von xfr (Gast)


Lesenswert?

String von UART empfangen, den String mit atoi() aus stdlib.h in eine 
Zahl umwandeln und den entsprechenden PWM-Puls erzeugen.

von Karl H. (kbuchegg)


Lesenswert?

georgi georgi schrieb:

> Ich will nur dass jemand ein paar  Hinweise gibt.

Der wichtigste Hinweis ist wohl der, dass du nur mit Ziffern senden 
nicht weiter kommst. Du brauchst irgendein spezielles Zeichen, bei 
dessen Empfang der µC erkennen kann: Oho, jetzt ist die Zahl vollständig 
in Textform übertragen worden und kann ausgewertet werden. Denn wenn du 
vor dich hintippst ... 1 .... dann kann man ja nicht wissen, ob du jetzt 
tatsächlich Eins meinst, oder ob da noch was kommt. Zb tippst du weiter 
... 0 .... und damit könnte dann zb Zehn gemeint sein. Könnte. Könnte 
aber auch sein, dass du weiter tippst ... 5 .... und dann sind es 
Hundert_und_fünf.

Da du vor dem Terminal sitzt, bietet sich zb der Einsatz der Return 
Taste an, die selbstverständlich auch einen Code zum µC schickt.
Return nimmt man gerne, weil es naheliegend und intuitiv ist (zumindest 
für die Generation der Programmierer vor den Mausschubsern). Aber im 
Grunde kannst du jedes beliebige Zeichen nehmen - es darf nur in den 
Nutzdaten nicht vorkommen.

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.