LabVIEW - serielle Kommunikation µC

Gast #1121254
Lesenswert?

Hallo,

ich habe den ATmega32 von Pollin. Er ist fertig programmiert und 
schaltet ein Licht ein, wenn ich in Hyperterminal -> "Licht" eingebe. 
Der µC ist über RS232 mit dem PC verbunden. Jetzt möchte ich diese 
Funktion über VISA in LabView realisieren, doch leider ohne Erfolg.
Wenn ich dem VISA WRITE Bausteil die Konstante "Licht" gebe macht der µC 
nix. Müssen vieleicht noch Steuerzeichen vor und hinter "Licht"?

Danke für Antworten!
#1121296
Lesenswert?

aus der Anleitung von AVR-NET-IO:
"Die nachfolgenden Kommandos können sowohl als TCP/IP-Anfrage als auch 
während einer direkten Terminalverbindung
verwendet werden. Jede Anfrage muss mit einem „\r\n“ abgeschlossen 
werden, als auch jede Antwort der AVR-NET-IO mit
einem „\r\n“ terminiert wird."
Gast #1121307
Lesenswert?

Es ist das AVR-NET-IO von Pollin.


Auszug aus der cmd.c
1
COMMAND_STRUCTUR COMMAND_TABELLE[] = // Befehls-Tabelle
2
{
3
  {"licht",command_licht},
4

5
.
6
.usw.
7
.
8
//------------------------------------------------------------------------------
9
//Commando auswerten
10
unsigned char extract_cmd (char *string_pointer)
11
{
12
  //Stringzeiger;
13
  char *string_pointer_tmp;
14
  unsigned char cmd_index = 0;
15

16
    string_pointer_tmp = strsep(&string_pointer," ");
17

18
  //Kommando in Tabelle suchen
19
  while(strcasecmp(COMMAND_TABELLE[cmd_index].cmd,string_pointer_tmp))
20
    {
21
        //Abruch Whileschleife und Unterprogramm verlassen
22
        if (COMMAND_TABELLE[++cmd_index].cmd == 0) return(0);
23
    }
24

25
    //Variablen finden und auswerten
26
  for (unsigned char a = 0; a<MAX_VAR;a++)
27
  {
28
        string_pointer_tmp = strsep(&string_pointer,"., ");
29
    variable[a] = strtol(string_pointer_tmp,NULL,0);
30
  }
31

32
    //Kommando ausführen
33
  COMMAND_TABELLE[cmd_index].fp();
34
  return(1);
35
}
36

37
//------------------------------------------------------------------------------
38
.
39
.usw
40
.
41

42

43
void command_licht (void)
44
{
45
  // 
46
   PORTA = 0x01;
47
    usart_write("Licht ist an! \r\n");
48
  
49
}
Gast #1121675
Lesenswert?

Hallo Marco,

Danke für deine hilfreiche Antwort!

Es funktioniert!!! Danke! Merci! ...

Hat noch jemand eine Idee wie man in Labview die BOOL Anzeige-Elemente 
(LED-SIM) bei nochmaligem Durchlauf zurücksetzen kann?

Und wie man in Labview das letzte gesendete Byte solange buffert bis ein 
Neues kommt, damit bei neuem Durchlauf keine Null übernommen wird?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren