- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 10

Thema: Hat jemand eine Idee bevor ich verzweifel?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist Avatar von RolfD
    Registriert seit
    07.02.2011
    Beiträge
    414

    Hat jemand eine Idee bevor ich verzweifel?

    Bei folgendem Code.. und c=0x00;
    Code:
    #define LCD_LL 0x0f
    
    static uint8_t lcd_cpos;
    static uint8_t lcd_line;
            c=0x00;
            lcd_line = 0x00;
            lcd_cpos = (c - (lcd_line * LCD_LL));
    Kommt bei mir in lcd_cpos immer 1 raus.. obwohl es 0 sein muss.
    Bei (lcd_line * LCD_LL) müsste es sich zu 0 x 15 also 0 berechnen was es nicht tut und bei c=0 dann 0 - (0 x 15) = 0 !!! nicht 1
    Erst hab ich gedacht, es liegt am casting weil c ein typ char ist und hab alles mit (uint8_t) versehen aber es ändert sich nichts.
    Es werden auch keine Bereichsgrenzen überschritten, keine Division durch 0.. oder sonstiger Unfug...

    Ist der Compiler defekt?
    Ich habs unter Amtel Studio 6.1 2730 SP2 im Sim laufen lassen und da kommt auch 1 raus. CPU Defekt ist damit auszuschließen.
    Da dieser Machinecode simuliert, scheint ja der Code nicht ok zu sein... hier mal eine Ausgabe mit -O0

    Code:
       596:         c=0x00;
    000008A1  STD Y+2,R1        Store indirect with displacement 
       597:         lcd_line=0x00;
    000008A2  STS 0x00BF,R1        Store direct to data space 
       599:         lcd_cpos = (c - (lcd_line * LCD_LL));
    000008A4  LDS R25,0x00BF        Load direct from data space 
    000008A6  LDI R24,0xF0        Load immediate 
    000008A7  MUL R25,R24        Multiply unsigned 
    000008A8  MOV R25,R0        Copy register 
    000008A9  CLR R1        Clear Register 
    000008AA  LDD R24,Y+2        Load indirect with displacement 
    000008AB  ADD R24,R25        Add without carry 
    000008AC  SUBI R24,0xFF        Subtract immediate 
    000008AD  STS 0x00BE,R24        Store direct to data space
    Und nu mit -O1

    Code:
       597:         lcd_line=0x00;
    00000257  STS 0x00BF,R1        Store direct to data space 
       599:         lcd_cpos = (c - (lcd_line * LCD_LL));
    00000259  LDI R24,0x01        Load immediate 
    0000025A  STS 0x00BE,R24        Store direct to data space
    In beiden Fällen kommt 1 raus, im letzten lädt er die 1 sogar einfach nur ins R24 und schreibt sie weg.
    Das er beim Optimierungslauf mit O1 die Multiplikation mal eben weg spart kann ich mir ja noch erklären - aber das er das mit einer 1 ersetzt.. nicht!

    Angaben zur Toolchain:
    Installed Packages: Atmel AVR (8 bit) GNU Toolchain Snapshot - 3.4.2.1000
    AVR Toolchain 8 Bit
    Version: AVR8_Toolchain_Version:3.4.2.974 GCC_VERSION:4.7.2
    Package GUID: 01BAAEB9-EC97-4398-95D1-633DB220CD77
    Company: Atmel
    HelpUrl:
    Release Description: AVR Toolchain For 8-Bit Devices

    Falls das wirklich ein Compilerfehler ist, dürfte das mehr Leute betreffen... und nicht nur RP6ler..
    Ich wollte es morgen mal mit der recht neuen 6.2 Studio Beta probieren.. in der Hoffnung, das da eine neuere Toolchain mit bei ist.

    Ich verstehs aber trotzdem nicht. HILFÄÄÄÄÄ


    (die 3.4.3 Toolchain, welche bei Atmel angeboten wird, ändert auch nichts daran... grade noch probiert...)
    Gruß
    Geändert von RolfD (14.05.2014 um 00:29 Uhr)
    Sind Sie auch ambivalent?

Ähnliche Themen

  1. switch case aud union und struct gehen schief, hat einer eine Idee warum ???
    Von jdelphi im Forum Microcontroller allgemeine Fragen/Andere Microcontroller
    Antworten: 0
    Letzter Beitrag: 29.09.2011, 13:04
  2. Signalweiche mit Avr- jemand eine idee??
    Von spass-basti im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 14
    Letzter Beitrag: 23.04.2007, 15:21
  3. Potentialproblem. Jemand eine idee?
    Von sebastian.heyn im Forum Elektronik
    Antworten: 7
    Letzter Beitrag: 22.08.2005, 16:55
  4. Bild auf TV erzeugen - Jemand eine IDEE?
    Von sebastian.heyn im Forum AVR Hardwarethemen
    Antworten: 20
    Letzter Beitrag: 03.05.2005, 13:28
  5. Ports beim ATmega32 gehen nicht! warum?? jemand eine Idee!!
    Von raptor_79 im Forum AVR Hardwarethemen
    Antworten: 4
    Letzter Beitrag: 18.01.2005, 14:55

Berechtigungen

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

Labornetzteil AliExpress