www.mikrocontroller.net

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


Autor: Daniel W. (daniel1989)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

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

Lg

Autor: Olli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
seriell oder auch parallel

Autor: Sprinter 1 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Über einen UART auf dem µC.

Autor: Martin Kreiner (maart)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jörg B. (manos)
Datum:

Bewertung
0 lesenswert
nicht 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)...

Autor: Daniel W. (daniel1989)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht 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.


Autor: Christian Beuge (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: jonny (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.