- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 19

Thema: Uhren-Testprogramm funktioniert nicht

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Zitat Zitat von HaWe Beitrag anzeigen
    Wirklich kompatibel zu ANSI-C char* wäre es nur, wenn du Strings an sich mit cstring-Funktionen verwenden könntest, also z.B.
    Das wäre einfach zu erreichen (durch eine zusätzliche Memberfunktion in der Stringklasse). Aber da muss man die Arduinoentwickler in Schutz nehmen, dass sie den Zugriff mit ".c_str()" machen, genau wie std::string auch. Microsoft hat das in den 1990ern in seiner CString Klasse gemacht.
    https://msdn.microsoft.com/en-us/lib...(v=vs.60).aspx
    Das produziert mehr Probleme als es löst, deswegen macht man das heute nicht mehr so.

    Zur Kritik an der Arduino String Klasse
    https://forum.arduino.cc/index.php?topic=364772.0
    When Arduino 1.0 was released, the "String" class was faulty due to compiler/library problems and could easily create wrong results and programs "hanging".

    This problem was fixed at some point, I think with release of IDE 1.0.5.

    So at least the "String" class is working "error free" now, if that was your question.

    But of course "String" is BAD BAD BAD, because of:
    - using more RAM than actually needed to solve any problem
    - encourages programmers to write programs that eat up more RAM than is actually available
    - slowing down program execution which might be bad if every microsecond is counting in your application
    - fragments RAM, so that after some time of running an application the RAM could be fragmented too much, so that no "String" of certain length can be allocated any longer.
    In C++ ist std::string nur ein typedef für std::basic_string<char>, wo schon der Name andeutet, dass da char drinstecken...
    http://en.cppreference.com/w/cpp/string/basic_string

  2. #2
    HaWe
    Gast
    dass da überall irgendwo char* (edit: Pointer auf nullterminierte strings) drin stecken, ist doch sonnenklar!
    Das Problem fängt dann an, wenn man - wie in C oder C++ üblich - direkt cstring/string.h oder string class Funktionen auf diese verqueren Arduino-String Chimären anwenden will!
    Man hätte sich fürs eine oder andere eindeutig entscheiden müssen, und es spricht ja nichts dagegen, vorhandene string.h oder string lib Funktionen durch eigene libs zu erweitern - aber was man jetzt mit String hat, ist ein Humbug ohne Ende, weder Fisch noch Fleisch, und Arduino-User gewöhnen sich Syntaxabnormitäten an, mit denen sie auf jeder anderen C/++ Plattform komplett scheitern!
    DAS ist der wirkliche Schwachsinn!
    Geändert von HaWe (14.09.2017 um 17:44 Uhr)

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    707
    Ja, ich halte die Arduino String Klasse, auch im Kontext dieses Threads, für keine gute Wahl und würde dem Fragesteller auch davon abraten.

    Was echte C++ Strings angeht hängt die Verwendbarkeit vom Bord ab. Das hier
    Code:
    #include <string>
    
    void setup() {
      std::string s = "Hallo";
    }
    
    void loop() {
    }
    kompiliert bei mir ohne Probleme
    Der Sketch verwendet 8112 Bytes (3%) des Programmspeicherplatzes. Das Maximum sind 262144 Bytes.
    Globale Variablen verwenden 3436 Bytes (5%) des dynamischen Speichers, 62100 Bytes für lokale Variablen verbleiben. Das Maximum sind 65536 Bytes.
    Arduino 1.8.4 mit Teensyduino 1.39, Boardeinstellung Teensy 3.2 72 MHz Faster

  4. #4
    HaWe
    Gast
    Leider ist der Datentyp, den Serial.getString() zurückliefert, aber Arduino-String, nicht char* und auch nicht std::string. Leider.

    Bezüglich der Frage des OP, was die [0] zu bedeuten hat, möchte ich jetzt gerne hier abschließen und auf meine Erklärung verweisen, damit er sie wiederfindet:

    https://www.roboternetz.de/community...l=1#post639093

Ähnliche Themen

  1. atmega32 führt testprogramm nicht aus
    Von exzoys im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 15
    Letzter Beitrag: 01.02.2011, 10:08
  2. Testprogramm läuft nicht
    Von 9999 im Forum Robby RP6
    Antworten: 24
    Letzter Beitrag: 30.05.2009, 17:05
  3. Testprogramm funktioniert nicht!
    Von Gillich im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 2
    Letzter Beitrag: 04.04.2008, 23:49
  4. Testprogramm für rn Control funktioniert nicht richtig
    Von thdrummer im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 1
    Letzter Beitrag: 26.02.2007, 15:18
  5. Genauigkeit von Uhren
    Von orph im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 25.09.2006, 16:48

Berechtigungen

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

LiFePO4 Speicher Test