- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 4 von 4

Thema: FOR-Schleife von -1 bis +1 nicht möglich?

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    27.08.2009
    Ort
    NRW
    Beiträge
    23

    FOR-Schleife von -1 bis +1 nicht möglich?

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi Kollegen,

    der Titel sagt ja schon fast alles. Ich habe versucht, eine FOR-Schleife von -1 bis +1 laufen zu lassen. In der Schleife wird zum Testen einfach nur die Iterationsvariable ausgegeben:

    Code:
    uint8_t i;
    for(i = -1; i <= 1; i++){
      writeString_P("Wert von i: ");
      writeInteger(i, DEC);
      writeString_P("\n");
    }
    Die Schleife wird von meinem RP6 komplett ignoriert. Wenn ich sie von 0 bis +1 laufen lasse, erhalte ich die erwarteten zwei Ausgaben.

    Ich dachte erst, ich müsste die Variable vielleicht explizit als "signed" deklarieren. Das mag der Compiler aber überhaupt nicht und bricht den Kompiliervorgang mit Fehlermeldungen ab.


    Meine Frage ist also: Kann der µC auf dem RP6 keine FOR-Schleifen von negativ nach positiv durchlaufen? Streikt er da bei euch auch? Oder kennt jemand nen Trick, mit dem es doch funktioniert?

    schönen 1. Weihnachtstag,
    V:X

  2. #2
    Moderator Robotik Visionär Avatar von radbruch
    Registriert seit
    27.12.2006
    Ort
    Stuttgart
    Alter
    61
    Beiträge
    5.799
    Blog-Einträge
    8
    Ich dachte erst, ich müsste die Variable vielleicht explizit als "signed" deklarieren.
    Ne, brauchst du nicht. Du hast sie ja schon expliziert "unsigned" gemacht

    uint8_t steht für unsigned 8Bit-Integer, du brauchst aber ein int8_t.

    Meine Frage ist also: Kann der µC auf dem RP6 keine FOR-Schleifen von negativ nach positiv durchlaufen?
    Da kann der µC auf dem RP6 nix für!
    Bild hier  
    Atmel’s products are not intended, authorized, or warranted for use
    as components in applications intended to support or sustain life!

  3. #3
    shedepe
    Gast
    Du hast den Fehler selber erkannt. Eine unsigned Variable kann keine negativen Werte annehmen. Also deklarier i als signed (int8_t;
    ) Wozu brauchst du eig eine Schleife von -1 bis 1 ?

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    27.08.2009
    Ort
    NRW
    Beiträge
    23
    Argh! Da hab ich ja mal nen richtigen "vor die Stirn klatscher" produziert.
    Ok, danke für die Antworten, mit int8_t hats natürlich funktioniert
    Naja. Jetzt werd ich wenigstens nicht mehr vergessen, wofür das u in uint8_t eigentlich steht

    @shedepe: Ich brauch das für ein Konstrukt, bei dem der Roboter vor und hinter sich und links und rechts auf Hindernisse prüfen soll.

    Guten Rutsch,
    V:X

Berechtigungen

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

LiFePO4 Speicher Test