- 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

    Praxistest und DIY Projekte
    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
  •  

fchao-Sinus-Wechselrichter AliExpress