Forum: PC-Programmierung VB 2010! Per Button-Klick meinen Mikrocontroller starten


von christb (Gast)


Lesenswert?

Hallo Leute,

ich habe in VB 2010 Express ein Form entwickelt auf dem sich ein Start- 
und ein Stop-Button zur Aktivierung bzw Deaktivierung eines µC befinden.
Verbunden ist der µC mit dem PC über eine RS232-Schnittstelle.

Meine Frage ist nun, wie ich den µC per Klick starten bzw stoppen kann?

Hat jemand schon mal so mit einem µC kommuniziert?


Vielen Dank und schöne Grüße Chris

von Rolf Magnus (Gast)


Lesenswert?

christb schrieb:
> Hallo Leute,
>
> ich habe in VB 2010 Express ein Form entwickelt auf dem sich ein Start-
> und ein Stop-Button zur Aktivierung bzw Deaktivierung eines µC befinden.
> Verbunden ist der µC mit dem PC über eine RS232-Schnittstelle.
>
> Meine Frage ist nun, wie ich den µC per Klick starten bzw stoppen kann?

Was verstehst du darunter, den µC zu "starten" oder "stoppen"? Man kann 
einen µC nicht einfach so anhalten, außer vielleicht per Debugging. Ich 
vermute, du willst irgendeinen Teil deines Programms ein- und 
ausschalten können.

> Hat jemand schon mal so mit einem µC kommuniziert?

Deine Frage ist nicht so ganz präzise. Was willst du eigentlich wissen? 
Wie man ein serielles Protokoll definiert? Wie man mit VB serielle 
Kommunikation macht? Das hat ja alles mit irgendwelchen Buttons und mit 
dem, was der µC als Reaktion macht, erstmal gar nichts zu tun.

von christb (Gast)


Lesenswert?

Hallo Rolf,

danke für deine schnelle Antwort!

Auf meinem µC befindet sich bereits das von mir erstellte C-Programm!
Jetzt möchte ich dieses Programm quasi per Button-Klick starten 
(debuggen).
Dazu muss ich irgendwie eine Verbindung mit dem µC herstellen. Und genau 
vor diesem Problem steh ich gerade, wie lässt sich das am Besten 
realisieren?

Mit dem Stop-Button Klick, soll nur das auf dem µC laufende Programm 
abgebrochen werden!

Du hast recht, dafür müsste ich wahrscheinlich grundsätzlich erstmal 
wissen, wie man mit VB 2010 Express eine serielle Kommunikation 
aufstellt?

Als Schnittstelle verwende ich einen RS232-Anschluss auf COM1!

Sorry, aber ich bin absoluter VB-Anfänger!

Gruß Chris

von Patrick (Gast)


Lesenswert?

Unter Visual c# 2010 ist eine serielle Schnittstelle zumindest kein 
Problem; wenn ich mich richtig erinnere, gab es da sogar ein 
entsprechendes Control für.

Du scheinst da ein Verständnisproblem zu haben: "den Mikrocontroller 
stoppen" kannst Du schon - indem Du die entsprechende Clock deaktivierst 
(im einfachsten Fall: Quarz abklemmen - noch einfacher: Betriebsspannung 
aus). Nachteil: Die serielle Verbindung ist auch tot (Selbst wenn die 
UART-Hardware eine separat (de-)aktivierbare Clock hat, so wird 
zumindest die Verarbeitung Deines Datenstroms fehlschlagen - die 
Recheneinheit ist ja aus.

Alternative: Den gewünschten Code nur ausführen, wenn ein bestimmtes z. 
B. Zeichen per UART empfangen wurde, und Ausführung wieder stoppen nach 
Empfang eines anderen Zeichens.

von Karl H. (kbuchegg)


Lesenswert?

christb schrieb:
> Hallo Rolf,
>
> danke für deine schnelle Antwort!
>
> Auf meinem µC befindet sich bereits das von mir erstellte C-Programm!
> Jetzt möchte ich dieses Programm quasi per Button-Klick starten
> (debuggen).

was heißt 'starten'?

Ein µC arbeitet immer sein Programm ab. Der einzige Fall, wann er das 
nicht tut ist, wenn man ihm die Stromversorung abdreht. Allerdings 
reagiert ein stromloser µC nicht auf irgendeine UART. Den so gesehen ist 
der ja in dem Moment ohne Strom einfach nur totes Silizium.

> Dazu muss ich irgendwie eine Verbindung mit dem µC herstellen. Und genau
> vor diesem Problem steh ich gerade, wie lässt sich das am Besten
> realisieren?
>
> Mit dem Stop-Button Klick, soll nur das auf dem µC laufende Programm
> abgebrochen werden!

Du musst dich von der Vorstellung lösen, dass da irgendwas 'gestartet' 
oder 'gestoppt' wird.

Auf deinem µC läuft ein Programm. Punkt.
Dieses Programm reagiert auf Befehle, die über die UART reinkommen.
Einer dieser Befehle kann jetzt sein, eine bestimmte Funktionalität 
auszuführen oder eben sie nicht auszuführen.

> Du hast recht, dafür müsste ich wahrscheinlich grundsätzlich erstmal
> wissen, wie man mit VB 2010 Express eine serielle Kommunikation
> aufstellt?

Das wäre sicher nicht schlecht. Es gibt Unmengen von Web-Seiten da 
draussen, die einem das erklären.

Aus Sicht des µC allerdings ist das irrelevant. Denn den µC kümmert es 
nicht, wer ihm da jetzt Kommandos schickt. Ob das ein Programm ist oder 
ob das ein Terminal ist, auf dem ein Mensch die Kommandos eintippt. Den 
µC interessiert nur, welche Bytes über die UART hereinkommen. Die wertet 
er in seinem Programm aus, egal wer am anderen Ende der Leitung sitzt.

von christb (Gast)


Lesenswert?

Hallo zusammen,

das heißt quasi, das ich nur ein Zeichen senden kann um z.B. einen Timer 
zu starten?
Bzw um ihn zu stoppen, seh ich das richtig?

Vielen Dank für eure Ratschläge und Hilfen.


Gruß Chris

von Karl H. (kbuchegg)


Lesenswert?

christb schrieb:
> Hallo zusammen,
>
> das heißt quasi, das ich nur ein Zeichen senden kann um z.B. einen Timer
> zu starten?
> Bzw um ihn zu stoppen, seh ich das richtig?

So kann man das ausdrücken. Ja.

Ob bei diesem Zeichen dann der Timer tatsächlich gestartet wird oder 
nicht, entscheidet das Programm welches auf dem µC läuft.
1
int main()
2
{
3
  ....
4
5
  while( 1 ) {     // die übliche Hauptschleife
6
7
    if( Zeichen von der UART da ) {
8
      if( Zeichen == 's' )
9
        Starte den Timer
10
11
      else if( Zeichen == 't' )
12
        Stoppe den Timer
13
14
      else if( Zeichen == 'A' )
15
        erste LED einschalten
16
17
      else if( Zeichen == 'a' )
18
        erste LED ausschalten
19
20
      else if( Zeichen == 'R' )
21
        Sirene einschalten
22
23
      else if( Zeichen == 'r' )
24
        Sirene ausschalten
25
    }
26
27
    mach was es sonst noch so in jedem Durchgang zu tun gibt
28
  }

Und dein Programm auf dem PC schickt über die UART zb das Zeichen 'A', 
wenn der Benutzer den Button "LED" hineindrückt (oder in eine Checkbox 
ein Häkchen hineinmacht). Und wenn der Benutzer den Button wieder 
rausdrückt (oder eben das Häkchen wieder wegmacht), dann schickt dein 
Programm ein 'a' über die UART.

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.