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

Thema: itoa nimmt höchstens int16_t mit nem AVR??

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    34
    Beiträge
    607

    itoa nimmt höchstens int16_t mit nem AVR??

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo Leute,
    ich bin gerade dabei, mehr oder weniger schwierige Berechnungen auf einem ATmega8 durchführen zu lassen. Um mir zwischenergebnisse ausgeben zu lassen, forme ich die Zahl mit itoa in ein Array um, und gebe es auf einem LCD-Display aus. Das problem ist nun, dass itoa anscheinend alle Zahlen, die ich ihm gebe als 16-bit signed integer interpretiert.
    So ergibt dies hier itoa(60000UL, buf, 10); das Array "-5535"
    und das hier itoa(68000UL, buf, 10); das Array "2464"
    Wenn ich das auf dem PC ausführe, dann kommi immer das richtige Array raus.
    Habt ihr vielleicht einen Tipp?

    Danke im Voraus, Yaro

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    25.03.2006
    Ort
    Darmstadt
    Alter
    33
    Beiträge
    522
    Hallo Yaro,

    auf dem AVR ist int 16 bit groß, deshalb funktioniert itoa (integer to ascii) nur mit diesem Zahlentyp. Für 32-Bit Werte muss man utoa (unsigned long to ascii) oder ltoa (long to ascii) nehmen.

    MfG Mark

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    21.05.2008
    Ort
    Oststeinbek
    Alter
    34
    Beiträge
    607
    Vielen Dank für die superschnelle Hilfe!

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress