- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 5 von 5

Thema: Attiny 85 String Error

  1. #1

    Beitrag Attiny 85 String Error

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hey,
    ich kann die class String nicht im Attiny Sketch benutzen.
    Wie kann ich den gezeigten Code ohne String am Besten umsetzen?
    Code:
        int counter= 33;  
        String messageCount1 = "Anzahl:";
        String messageCount2= "Einheiten";
        String message1 = messageCount1 + counter+ messageCount2;
        lcd.setCursor ( 0, 2 );
        lcd.print(message1);  
    
        float value = 25.48;
        String messageValue1 = "Temperatur:";
        String messageValue2 = "°C";
        String message2 = messageValue1 + value+ messageValue2;
        lcd.setCursor ( 0, 3 );
        lcd.print(message2);

  2. #2
    HaWe
    Gast
    hallo,
    du "addierst" z.B. Integer-Werte an Strings, das wird nicht gehen. Wandle mal die Zahlen in Strings um und guck was passiert:
    z.B.
    nicht
    String message1 = messageCount1 + counter+ messageCount2;
    sondern
    String message1 = messageCount1 + (String)counter+ messageCount2;

    kann sein, dass noch andere Bugs drin sind (die ich jetzt spontan nicht sehe), aber das wäre mal der 1. Schritt.
    Falls es dann immer noch nicht geht:
    poste bitte einen MINIMALEN, aber KOMPLETTEN Code samt aller Fehlermeldungen der IDE.
    Geändert von HaWe (24.04.2020 um 12:34 Uhr) Grund: typo

  3. #3
    Danke für den Tipp mit dem Casting.
    Das klappt aber nur bei int.
    Mit float komme ich leider nicht weiter.
    Habe schon viele ausprobiert.
    Immer kommt der Fehler
    Code:
    conversion from 'float' to 'const String' is ambiguous
    Folgende Zeilen haben den Erfolg gebracht.
    Code:
    String messageValue1 = "Temperatur:";
      String messageValue2 = "°C";
      char charBuf[10];
      dtostrf(value,7, 2, charBuf); 
      String message2 = messageValue1 + charBuf + messageValue2;
      lcd.setCursor ( 0, 3 );
      lcd.print(message2);
    Nur ist aber der Programmspeicherplatz von 6012 Bytes überschritten.
    Ich habe gelesen , dass String viel Speicher frisst und man char nehmen soll.
    Jedoch weiss ich nicht genau wie ich das umsetzen soll.

    Gruß

  4. #4
    HaWe
    Gast
    cstrings (char* oder char[ ] ) lassen sich mit strcat() aneinanderhängen, ist aber schon ein wenig komplizierter.
    http://www.cplusplus.com/reference/cstring/strcat/
    da musst du jetzt durch - entweder ANSI C lernen oder einen größeren Prozessor kaufen und dabei String benutzen.
    (Ich selber würde mit den mickrigen AVRs ja gar nicht erst anfangen, wozu gibt es M0/Zero, M4 oder ESPs...)

    Eine Option fällt mir noch ein:
    einfach alle char* Teilstrings nacheinander einzeln mit lcd.print() ausgeben

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    13.01.2014
    Beiträge
    454
    Blog-Einträge
    3
    Am einfachsten so:
    Code:
            int counter= 33;  
            lcd.setCursor ( 0, 2 );
            lcd.print("Anzahl: ");
            lcd.print(counter); 
            lcd.print(" Einheiten");  
    
            float value = 25.48;
            lcd.setCursor ( 0, 3 );
            lcd.print("Temperatur: ");
            lcd.print(value); 
            lcd.print("°C");
    Geändert von Sisor (25.04.2020 um 20:25 Uhr)

Ähnliche Themen

  1. string an lcd senden, string in pointer speichern
    Von andi.studi im Forum PIC Controller
    Antworten: 15
    Letzter Beitrag: 13.08.2008, 23:51
  2. [ERLEDIGT] BASCOM Timer1: error 46: assignment error
    Von Heiner Schmitz im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 12
    Letzter Beitrag: 26.02.2007, 09:09
  3. String auf String zuweisen geht nicht
    Von Jaecko im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 6
    Letzter Beitrag: 14.12.2006, 17:48
  4. Error: 344.... aufgetreten beim compilieren für einen Attiny
    Von mat-sche im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 01.07.2006, 09:18
  5. parse error before string constant
    Von gott18 im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 28.11.2005, 22:01

Berechtigungen

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

LiFePO4 Speicher Test