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

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.