Hallo! Wie kann man von einer programmierten Benutzeroberfläche( in C oder so..) Werte auf den µC schreiben? Lg
>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.
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)...
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!
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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.