- 12V Akku mit 280 Ah bauen         
Ergebnis 1 bis 2 von 2

Thema: 18F2520 Rechenfehler beim Dividieren mit Rest (%)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.06.2007
    Beiträge
    8

    18F2520 Rechenfehler beim Dividieren mit Rest (%)

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hi,

    Ich Programmiere mit der MPLAB IDE V7.6 und als Compiler verwende ich C18.
    Ich bekomme bei einer Division mit Rest ein Falsches Ergebnis ...

    Code:
    /* D I S P L A Y  N U M B E R **************************************************/
    void DSP_DrawNumberLeft( static unsigned short numb, static unsigned char len, static unsigned char posx, static unsigned char posy )
    {
    	static unsigned short DrawNumb;
    	static unsigned char DrawPoint;
    
    	//Noch mehr Code
    
    	DrawNumb = numb;		//Nummer Speichern
    
    	//Noch mehr Code
    
    	DrawNumb %= 10;		//Rest ermitteln
    
    	//Noch mehr Code
    
    }
    numb bekommt bei der Parameterübergabe der Funktion den Wert 2.
    DrawNumb enthält am ende der Funktion aber nicht 2 sonder 233 ... Ich kann leider nicht die Ganze Variable sehen sondern nur das erste Byte weil ich nur über UART debuggen kann. Ein zweites Byte Hinterherschiken wäre so aus dem Stand sehr aufwändig. Trotzdem müsste das Ergebnis 2 sein.
    Den Kot drumherum habe ich bereits auskommentiert es steht wirklich nurnoch das in der Funktion was ich oben geschrieben habe.

    Wo liegt das Problem? Bzw. weis Jemand wie die Syntax aushehen muss dammit es Funktioniert?

    MfG Stalky13

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    20.07.2008
    Ort
    Herford
    Alter
    40
    Beiträge
    52
    hi,

    wenn numb den wert 2 hat,

    DrawNumb = numb; //Nummer Speichern

    DrawNumb %= 10; //Rest ermitteln

    sollte hier in DrawNumb auch 2 stehen programiertechnisch kann ich hier keinen fehler sehen.

    kannst es ja eftl etwas eingränzen, schreib doch mal DrawNumb = 2; und schau dir das ergebnis an, damit könntest du eine falsche parameterübergabe ausschließen.

    für alles andere müssste man mehr quellcode sehen, den da ist wie gesagt kein fehler zu sehen.
    2 sollte 2 bleiben, aus 13 sollte 3 werden und aus 234 wird 4

Berechtigungen

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

Labornetzteil AliExpress