Forum: Mikrocontroller und Digitale Elektronik Kommunikation zwischen PC und µC


von Daniel W. (daniel1989)


Lesenswert?

Hallo!

Wie kann man von einer programmierten Benutzeroberfläche( in C oder 
so..) Werte auf den µC schreiben?

Lg

von Olli (Gast)


Lesenswert?

seriell oder auch parallel

von Sprinter 1 (Gast)


Lesenswert?

Über einen UART auf dem µC.

von Martin K. (maart)


Lesenswert?

>Wie kann man von einer programmierten Benutzeroberfläche( in C oder
>so..) Werte auf den µC schreiben?

Indem die Benutzeroberfläche die Daten z.B. über die serielle 
Schnittstelle (RS232) an den µC sendet.

von Jörg B. (manos)


Lesenswert?

Z.B. über serielle Kommunikation zwischen den beiden... im µC muss 
natürlich dann auch ein entsprechendes Programm sein...

Oder meinst Du mit "Werte schreiben" programmieren? Dann brauchst Du ein 
ISP-Adapter und die entsprechende Sendesoftware (AVR-Studio, 
Polyprog)...

von Daniel W. (daniel1989)


Lesenswert?

kleines Beispiel:

es steht auf dem Display am µC 15 und ich möchte über die selbst 
programmierte Oberfläche aus 15 17 machen...


Lg und vielen Dank im vorraus!

von Karl H. (kbuchegg)


Lesenswert?

Daniel W. wrote:
>
> kleines Beispiel:
>
> es steht auf dem Display am µC 15 und ich möchte über die selbst
> programmierte Oberfläche aus 15 17 machen...
>

Dann musst du auf der Oberfläche ja irgendein Element
haben, welches den Vorgang auslöst. Einen Button oder so.

Wird der gedrückt, dann öffnet das Programm am PC einen Kanal
zur seriellen Schnittstelle und sendet ein (von dir definiertes)
Kommando an den µC.

Am µC lauert ein Programm ständig darauf, ob über die serielle
Schnittstelle irgendetwas hereinkommt. Wenn dann mal was kommt,
untersucht das Programm ob das vielleicht das Kommando ist,
welches einen neuen Display Wert vorschreibt. Wenn ja, dann
extrahiert das Programm den neuen Wert aus dem Kommando und
platziert ihn am Display.

Wie du das Kommando machst, ist ganz dir überlassen.
Es könnte zb so aussehen
S17;
^^^^
|| |
|| +----- Kennzeichnung das die Kommandosequenz zu Ende ist
|+------- Ab der 2ten Stelle beginnt der Wert für das Kommando
|         Der Wert dauert an, bis das Kommandoende Kennzeichen
|         kommt.
+-------- Kommandokennung. 'C' könnte zb. für 'Clear' stehen.
          'S' für Set, 'I' für Increment, etc. denk dir was aus.


Wichtig ist:
Es gibt dabei kein Richtig und kein Falsch. Solange es
funktioniert ist es per Definition richtig.
Und ja: Du musst dir da was ausdenken.
Das ist ja das schöne in der Programmierung: Man
kann so richtig schön kreativ sein. Hinterher sieht man
dann ob das Ausgedachte sinnvoll war oder nicht.


von Christian Beuge (Gast)


Lesenswert?

Hey Daniel!

Als erstes wäre da interessant zu wissen, was Du tun willst und welchen 
µC Du verwendest. Ich verwende (bei einem Projekt) den XC164 von Intel, 
zuhause einen Atmel (168 / 169).

(Also, ich bin jetzt nicht wirklich Profi, habe es aber schon mal 
gemacht...)
Um die Serielle Schnittstelle anzusprechen, also von C++ aus, gibt es im 
Internet eine Klasse, welche man sich runterladen kann (google). Die 
kannst Du dann in Dein Visualisierungprogramm einbinden. Dann solltest 
Du, wenn Du genau weißt, was Du machen willst, ein "Protokoll" festlegen 
(z.B. Commandbyte + Datenbyte). Wieviele Bytes zu übertragen möchtest 
kannst Du in der Klasse festlegen, ebenso Parity, Stop...

Das "einfachste" ist, wenn Du einen Interrupt auslösen lässt, wenn der 
µC Via UART was empfängt. In dieser Interruptroutine kannst Du dann 
festlegen, was mit den Daten geschieht (lass sie aber nicht zu groß 
werden!!).
Was ich bis jetzt leider noch nicht geschafft habe ist, einen Interrupt 
auslösen zu lassen, wenn die serielle Schnittstelle am PC etwas empfängt 
(also, Interrupthandling im mein C++ programm einzubinden).

Ich hoffe ich konnte Dir helfen... wenn Du noch Fragen hast... schick 
mir doch einfach eine E-Mail!

Gruß Christian

von jonny (Gast)


Lesenswert?

Also bei mir mache ich das so, dass der µC (AVR 32) immer auf Daten über 
die UART wartet.

Das Programm, dass ich wegen den vorhandenen Steurungen usw. in VB2005 
.Net geschrieben habe, sendet auf knopfdruck eine bestimmte 
Zeichenfolge. Diese wird mit Enter (0xD0) abgeschlossen.

Dann wertet der µC alles aus und fertig.

jonny

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.