- SF800 Solar Speicher Tutorial         
Ergebnis 1 bis 6 von 6

Thema: Statemachine Beispielprogramm

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #5
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    62
    Beiträge
    5.799
    Blog-Einträge
    8
    Ich hab' das auch noch nie verwendet, hatte es aber vor Jahren mal hier gesehen:

    Code:
    /*****************************************************************************/
    // Status LEDs
    
    // A shadow register that simplifies usage of status LEDs:
    union {
     	uint8_t byte;
    	struct {
    		unsigned LEDsR:3;
    		unsigned LEDsL:3;
    		unsigned reserved:2;
    	};
    	struct {
    		unsigned LED1:1;
    		unsigned LED2:1;
    		unsigned LED3:1;
    		unsigned LED4:1;
    		unsigned LED5:1;
    		unsigned LED6:1;
    		unsigned reserved1:1;
    		unsigned reserved2:1;
    	};
    } statusLEDs;
    (Aus RP6RobotBaseLib.h)

    Oje: https://www.roboternetz.de/community...fehler-gesucht

    ...dass GCC da ziemlich unschöne Dinge anstellt.
    Ich glaube, hier treffen zumindest zwei große Fallen aufeinander:

    1.: Mit :1 wird keine boolesche Variable im Sinne vom GCC erzeugt, vielmehr handelt es sich um eine 1-Bit Variable. Eine Zuweisung mit True/False ist deshalb nicht legitim. Richtig wäre die Zuweisung eines 1-Bit-Wertes, deshalb verwendet GCC in meinem verlinkten Beitrag nur das Bit0 bei der Zuweisung.

    2.: Die schwammigen Definitionen und Verwendungen von True und False. Weil allgemein angenommen wird, dass False gleich 0 ist (Ziffer Null, kein O), und alles außer 0 wäre True, ergeben sich Probleme, wenn man versucht, der 1-bit-Variable den boolesche Wert "True" zuzuordnen. Wie ich schon vor fast vier Jahren geschrieben hatte:

    "(ACHTUNG! Das funktioniert nicht generell in C weil nicht definiert ist, wie der Compiler intern ein true speichert. true könnte auch z.B. 0b10000000 sein. Nur so am Rande erwähnt)"

    (Ich hoffe, dass stimmt so halbwegs)


    [Esraubtmirdenschlaf]
    Wenn man, wie gewöhnlich,

    char true=1, false=0;
    if( (1==1) == true)

    verwendet, würde das auch mit

    char true=0b10000000, false=0;
    if( (1==1) == true)

    funktionieren?

    (1==1) ist das GCC-True. Egal wie, dieses True ist in seiner Logikeinheit fest gespeichert. Welcher Datentype würde für mein eigenes true passen? Sind vielleicht deshalb die booleschen Variablen in GCC nicht definiert?

    Ist ja lustig, so trifft man sich wieder:
    https://www.roboternetz.de/community...t-Boolean-in-C

    "...da "false" theoretisch nicht Null sein muss." *heul*

    ´Programmiersprache C/C++
    6.2.5. Datentyp bool
    C sieht keinen eigenen Datentyp für logische Werte vor.
    Logische Ausdrücke und Vergleiche liefern stattdessen einen Wert vom Typ int:

    0 "Falsch" ( false )
    sonst "Wahr" ( true )

    Diese Eigenschaft ermöglicht in C das Erstellen sehr kompakter Quelltexte.
    (Aus http://www.imb-jena.de/~gmueller/kurse/c_c++/c625.html)

    Diese Eigenschaft ist Schummeln?
    [/Esraubtmirdenschlaf]
    Geändert von radbruch (26.01.2012 um 22:09 Uhr)
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

Ähnliche Themen

  1. Frage zu Statemachine Menü aus RN-Wissen
    Von kolisson im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 29.08.2010, 13:55
  2. UART-Beispielprogramm
    Von datatom im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 06.04.2010, 20:09
  3. Fragen zum I2C und zum Beispielprogramm
    Von TrainMen im Forum Robby RP6
    Antworten: 5
    Letzter Beitrag: 21.06.2009, 21:55
  4. C Beispielprogramm flashen
    Von Da_Vinci13 im Forum Schaltungen und Boards der Projektseite Mikrocontroller-Elektronik.de
    Antworten: 13
    Letzter Beitrag: 12.02.2009, 12:40
  5. ATMEGA2560 Beispielprogramm
    Von mattschach im Forum C - Programmierung (GCC u.a.)
    Antworten: 17
    Letzter Beitrag: 06.01.2008, 15:58

Berechtigungen

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

Solar Speicher und Akkus Tests