- LiFePO4 Speicher Test         
Ergebnis 1 bis 7 von 7

Thema: [LabView] zeilenweises Auslesen der seriellen Schnittstelle

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2011
    Beiträge
    23
    Also, hab heute von ganz neu angefangen und folgendes ist rausgekommen:
    Ich kann jetzt ein Array erstellen mit tatsächlich zwei (juhu!) Zeilen.
    Problem: In der unteren und der oberen Zeile wird synchron das selbe angezeigt.
    Mein Datenstring der von der Schnittstelle kommt sieht so aus:
    "Ref Temperaturwert Zeilenumbruch
    Kam Temperaturwert Zeilenumbruch"

    Das heisst ich muss den Datenstring in zwei (später mehr) Teilstrings aufsplitten.
    Die Teilung muss immer dann erfolgen wenn ein Zeilenumbruch kommt.
    Theoretisch könnte ich eine feste Position des Zeilenumbruchs festlegen, aber das möchte ich nicht, weil das viel Geraffel im C Quellcode für den Mikrocontroller wird.
    Das müsste einfacher gehen, indem ich LabView sage: "Such nach dem Zeilenumbruch und wenn du einen gefunden hast, dann teile den String und hänge den gespiltteten teil des Strings unter den ersten Teil (so sollte es prinzipiell dann für alle Stringteile funktionieren: Ersten Zeilenumbruch gefunden--->Rest den Strings an die zweite Zeile anhängen im Array, zweiten Umbruch gefunden--->Rest des Reststrings an die dritte Zeile im Array hängen, usw., sowas in C zu machen ist Sackgang mit meinen sehr spärlichen C kenntnissen).

    Hab mal den Screenshot der aktuellen VI angehangen, die kann den Datenstring nicht Teilen, aber immerhin schon zwei Zeilen des Arrays erstellen.
    Hoffe mein Problem ist verständlich.

    Nochmal zur Erlaüterung:
    Ich möchte später alle Eingänge meines ADC an dem AtMega16 nutzen, das sind 8 Stück.
    Momentan sind zwei Sensoren an denen angelötet.
    Wenn ich spätere neue anlöte, möchte ich einfach nur noch im C Code sagen: "Hey da ist ein neuer Sensor, an den und dem Pin, UART, gib mir die Messwerte des Sensors" Das isn Dreizeiler im C.
    LabView soll dann automatisch erkennen dass ein neuer Zeilenumbruch kommt, und automatisch den neuen Wert an das bereits vorhandene Array anhängen (maximal müsste ich dann in LabView sagen dass sich das Array um eine Zeile vergößern muss, dass passiert einfach indem ich einen neuen Case in der For Schleife einfüge, die das Arrays zusammenbaut).

    Viele liebe und gerade etwas verzweilte Grüße, Mikhail

    PS: mein letzer Satz war ganz schön hart am Rande der Homosexualität.
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken viarray.jpg  

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    11.12.2007
    Ort
    weit weg von nahe Bonn
    Alter
    40
    Beiträge
    3.416
    dann solltest du vll. doch ein klein wenig mehr arbeit in den c-code investieren! mach den buffer um 1 byte größer und füge folgendes hinzu

    Code:
    if (_valuetosend_ = adc_read_avg( _channeltoread_ , 100)) //diese if-abfrage ergibt garkeinen sinn ... wozu das eigentlich .. oder überseh ich was ?
    {
       itoa( _channeltoread_ , buffer, 10); //solange deine _channeltoread_ nicht größer 9 wird ist das kein problem!
       itoa( _valuetosend_ , buffer+1, 10);
       uart_puts("dein channel-name");
       uart_puts(buffer);
       USART_Transmit(0x0A);
    }
    USART_Transmit(0x0A); // ... noch ein zeilenende ?! 
    overflowzahl=0;
    OT: wenn ich code aus einem quote kopier versemmelt der mir immer alle formatierungen!

    in labview brauchst du jetzt nur jedes erste zeichen einer "zeile" als deine kanal-nummer interpretieren
    Geändert von Ceos (06.10.2011 um 11:44 Uhr)
    Es gibt 10 Sorten von Menschen: Die einen können binär zählen, die anderen
    nicht.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    26.09.2011
    Beiträge
    23
    Was macht genau die Modifikation im Quellcode?
    Wie gesagt meine C Kenntnisse sind sehr bescheiden.
    Achja:
    Hab das selbe Problem mit den Codes und Quotes wie du.


    Das letzte Zeilenende in der If Schleife (was du kommentiert hast) ist noch ein Überbleibsel aus den Spielereien mit dem Terminal.
    Das gehört eigentlich nicht mehr da rein.
    Geändert von bmtil (06.10.2011 um 13:01 Uhr)

Ähnliche Themen

  1. AVR: Simulation der seriellen Schnittstelle
    Von Furtion im Forum AVR Hardwarethemen
    Antworten: 9
    Letzter Beitrag: 01.10.2008, 10:34
  2. Zuverlässigkeit der seriellen Schnittstelle
    Von enoritz im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 06.06.2005, 14:49
  3. Serielle Schnittstelle mit LabView
    Von hannoi im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 20.05.2005, 11:33
  4. programm zum ansteuern der seriellen schnittstelle
    Von oliverderinheisternwohnt im Forum Motoren
    Antworten: 2
    Letzter Beitrag: 26.02.2005, 17:10

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress