- LiTime Speicher und Akkus         
Ergebnis 1 bis 7 von 7

Thema: Ausgabe von int Werten

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    11.09.2007
    Beiträge
    211

    Ausgabe von int Werten

    Hi,

    wie gebe ich integer Werte aus? Ich wollte mit den Odometriedaten spielen und dazu die Werte mir ausgeben lassen:

    Code:
    #include <asuro.h>
    
    int main(void)
    {
    	unsigned int data[2];
    	
    	Init();
    	MotorDir(FWD, FWD);
    	MotorSpeed(120,120);
    	StatusLED(GREEN);
    	
    	
    	
    	do {
    	OdometrieData(data);
    	SerWrite(data[0], sizeof(data[0])); 
    	}
    	while(1);
    	
    	while(1);
    	return 0;
    }
    Es kommen nur seltsame Zeichen, wahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?

    Grüße
    Alex

  2. #2
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    wahrschienlich muss man den int-wert in ascii umrechnen. Wie mache ich das?
    Die Antwort hast Du Dir schon selber gegeben
    inttoascii also itoa

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.06.2007
    Alter
    31
    Beiträge
    104
    Ich habe sowas immer mir Strings gemacht.

    Die Werte werden mittels sprintf() als in ein char umgeschrieben. Diesen Wert musst du dann halt nur noch statt den Textin die SerWrite Funktion einsetzten.

    Dazu benötigst du aber noch eine andere Libary (Hab gerade vergessen wie die heißt)

    Ich erinner mich aber, dass aus solchen Gründen, diese Methode auf Widerstand stößt. Auch hier im Forum.
    Gruß Roboaktiv


    It is öde to be blöde

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    08.05.2005
    Ort
    Issum
    Alter
    52
    Beiträge
    2.236
    Dazu benötigst du aber noch eine andere Libary (Hab gerade vergessen wie die heißt)
    stdio.h heißt sie
    itoa braucht stdlib.h

    Gruß Sebastian
    Software is like s e x: its better when its free.
    Linus Torvald

  5. #5
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.062
    mach folgendes:

    dein int wert ist in der variable "wert" gespeichert. mach folgendes:

    Code:
    unsigned char text[6];
    itoa(wert,text,10);
    SerWrite(text,6);
    das sollte wohl helfen.
    Read... or die.
    ff.mud.de:7600
    Bild hier  

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    23.08.2007
    Beiträge
    61
    @damaltor: Es muss
    Code:
    unsigned char text[7];
    itoa(wert,text,10);
    SerWrite(text,6);
    heißen, da die Funktion itoa einen nullterminierten String erzeugt. Der größtmögliche int + ein Minuszeichen + ein Terminatorzeichen sind eben 7 Zeichen. Bei SerWrite reicht dann die 6, da man das Terminatorzeichen nicht mitsenden muss.

    Gruß farratt

  7. #7
    Moderator Robotik Einstein Avatar von damaltor
    Registriert seit
    28.09.2006
    Ort
    Milda
    Alter
    37
    Beiträge
    4.062
    da hast du wohl recht... ich hab etwas zu sehr gespart =)
    Read... or die.
    ff.mud.de:7600
    Bild hier  

Berechtigungen

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

LiFePO4 Speicher Test