- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 6 von 6

Thema: ASURO Serwrite Problem

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2009
    Beiträge
    18

    ASURO Serwrite Problem

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Ich würde gerne zum besseren Verständnis meine momentanen Temperaturwerte (Snake Vision) auf dem Hyperterminal angezeigt bekommen. Funzt aber nicht so ganz. Habe allerdings mit Serwrite keinerlei Erfahrung, deshalb hier den Block mit dem Teil, aus dem wahrscheinlich der Fehler stammt. Die Temperaturwerte sind bei mir unsigned int.

    SerWrite("\r\nWäremwert links:",19);
    Sleep(250);
    SerWrite(temps[0],9);
    SerWrite("\r\nWäremwert rechts:",1;
    Sleep(250);
    SerWrite("temps[1]",9);

    Die Werte 9 sind mal willkürlich, da ich noch nicht weiß, welche Zahlen ankommen werden. Ich arbeite mit der alten Library (nicht die 2..

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2009
    Beiträge
    18
    Leute, warum schreibt keiner? NIemand ne Idee?

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    04.05.2010
    Beiträge
    88
    Habe allerdings mit Serwrite keinerlei Erfahrung
    dann verschaff dir welche.
    lies die anleitung zu der funktion oder schau nach wie sie programmiert ist.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2009
    Beiträge
    18
    wahnsinn, auf welche ideen du kommst. Musst ja nicht gleich ausfallend werden. Bist bestimmt nicht als Meister vom Himmel gefallen.

    Könnt mir jemand nen Tip geben, der wirklich Ahnung hat und nicht seine (wenigen) Posting-stats in der Youtube-Ecke gesammelt hat?

  5. #5
    Benutzer Stammmitglied
    Registriert seit
    28.03.2010
    Ort
    nahe München
    Beiträge
    45

    Re: ASURO Serwrite Problem

    Hallo,

    Zitat Zitat von Zehplusplus

    SerWrite("\r\nWäremwert links:",19);
    Sleep(250);
    SerWrite(temps[0],9);
    SerWrite("\r\nWäremwert rechts:",18);
    Sleep(250);
    SerWrite("temps[1]",9);
    Also, Zehplusplus, erstmal, was für ein bizarre Code...

    Die Definition von SerWrite lautet:

    void SerWrite(unsigned char *data,unsigned char length);

    D.h. *data ist der String, den du ausgeben und lenght dessen Länge.
    z.B. Wenn du Hallo ausgeben willst schreibst du SerWrite("Hallo",5);

    Soweit so gut, aber damit kannst du keine Zahlen ausgeben!

    Wenn du zum Beispiel int meineZahl = 50; ausgeben willst, brauchst du etwa so eine Funktion (aus der AsuroLib2.7, leicht modifiziert):


    Code:
    void PrintInt (
      int wert)
    {
      char text [7];                        // "-12345"
    
      itoa (wert, text, 10);
      SerPrint (text);
    }
    
    void SerPrint (
      char *data)
    {
      unsigned char i = 0;
    
      while (data [i] != 0x00)
        UartPutc (data [i++]);
    }
    
    void UartPutc (
      unsigned char zeichen)
    {
      UCSRB  = 0x08;                        // enable transmitter
      UCSRA |= 0x40;                        // clear transmitter flag
      while (!(UCSRA & 0x20))               // wait for empty transmit buffer
        ;
      UDR = zeichen;
      while (!(UCSRA & 0x40))               // Wait for transmit complete flag (TXC)
        ;
      UCSRB  = 0x00;                        // disable transmitter / powersave
    }
    Erklärung: die Funktion itoa in PrintInt wandelt die Zahl in einen String um, UartPutc() ist eine Methode um einzelne Zeichen zu senden, der Rest müsste klar sein

    Dann musst du noch
    Code:
    int temperaturLinks = 50;
    int temperaturRechts = 100;
    SerWrite("Links:",6);
    PrintInt(temperaturLinks);
    SerWrite(""\n\rRechts:,9);
    PrintInt(temperaturRechts);
    schreiben und es erscheint

    Links:50
    Rechts:100

    im Terminal.


    ASUR0

    P.S. zugegeben, deine Frage wirkt schon sehr unqualifiziert und du hast Glück dass mir gerade langweilig war...

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    17.12.2009
    Beiträge
    18
    Danke dir vielmals. Es geht bei meinem Kameraden, vlt hätte ich auch die neue Bibliothek nehmen sollen. Meine ist jetzt ergänzt, und der Asuro spuckt sogar die richtigen Werte aus Ich danke dir vielmals.

Berechtigungen

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

MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad