www.mikrocontroller.net

Forum: PC-Programmierung LabVIEW - serielle Kommunikation µC


Autor: W123 (Gast)
Datum:

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

Autor: Marco G. (stan)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte es sein dass nach "Licht" noch ein <CR> oder <LF> kommen muss?
Welches Pollin-Board hast du genau? Link? Sourcecode?

Autor: Marco G. (stan)
Datum:

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

Autor: W123 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist das AVR-NET-IO von Pollin.


Auszug aus der cmd.c

COMMAND_STRUCTUR COMMAND_TABELLE[] = // Befehls-Tabelle
{
  {"licht",command_licht},

.
.usw.
.
//------------------------------------------------------------------------------
//Commando auswerten
unsigned char extract_cmd (char *string_pointer)
{
  //Stringzeiger;
  char *string_pointer_tmp;
  unsigned char cmd_index = 0;

    string_pointer_tmp = strsep(&string_pointer," ");

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

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

    //Kommando ausführen
  COMMAND_TABELLE[cmd_index].fp();
  return(1);
}

//------------------------------------------------------------------------------
.
.usw
.


void command_licht (void)
{
  // 
   PORTA = 0x01;
    usart_write("Licht ist an! \r\n");
  
}


Autor: Bobby (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@W123:
Du könntest auf den Gedanken kommen, die Anregung von Marco
zumindest auszuprobieren.
Ansonsten: In Deinem Code fehlt die Empfangsroutine !

Autor: W123 (Gast)
Datum:

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

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.