- LiFePO4 Speicher Test         
Ergebnis 1 bis 2 von 2

Thema: Darf der Compiler das ??? (Kaputt optimiert)

  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076

    Darf der Compiler das ??? (Kaputt optimiert)

    Anzeige

    E-Bike
    Hallo,
    ich habe (hatte) ein Problem bei einer Berechnung in "C"
    Nachdem ich mir den Assemblercode ansah, wurde der Fehler offensichtlich.
    Für eine Division mit 16384 hat der Compiler einen Shift Rechts 14 eingesetzt.
    Das ist für "positive" Werte völlig okay, aber bei negativen Werten geht es natürlich schief, es sei denn er hätte einen Spezialshift welcher das Vorzeichen beachtet. Hat der Cortex M3 aber nicht und genau für den wurde der Code erstellt.

    Um es kurz zu machen, anbei der Code mit der Problemlösung.

    Nun die eigentliche Frage:
    Kommt nicht bei jeder Berechnung ohne Typecast als "Default(Standard) ein "int" heraus ? dann hätte der Compiler doch nicht einen Shift benutzen dürfen ?

    Siro

  2. #2
    Erfahrener Benutzer Robotik Visionär
    Registriert seit
    26.11.2005
    Ort
    bei Uelzen (Niedersachsen)
    Beiträge
    7.942
    Bei der Berechnung wird der "größte" Datentyp übernommen. Auch bei der Subtraktion von 2 Unsigned werten bleibt das Unsigned.

Ähnliche Themen

  1. Darf man einen Akku hinlegen?
    Von sebriko im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 19.06.2008, 16:07
  2. Wie heiß darf ein Bauteil werden?
    Von Rohbotiker im Forum Elektronik
    Antworten: 5
    Letzter Beitrag: 15.10.2007, 13:06
  3. Darf ich vorstellen...Flaky !! (Neu Video!)
    Von quad im Forum Vorstellungen+Bilder von fertigen Projekten/Bots
    Antworten: 29
    Letzter Beitrag: 26.12.2005, 22:32
  4. wie warm darf so ein atmega32 werden?
    Von Zeroeightfifteen im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 02.06.2005, 17:29
  5. LPT-Kabel... wie lang darf es sein ???
    Von michiE im Forum Elektronik
    Antworten: 17
    Letzter Beitrag: 28.05.2005, 14:47

Berechtigungen

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

12V Akku bauen