Fehler bei Umwandlung mit atoi?

Gast #234025
Lesenswert?

Hallo!

Ich habe hier ein (mir unverständliches) Problem mit der
atoi-Anweisung. Ich möchte auf einem LCD eine Uhr anzeigen. Dazu werden
per Interrups (jede sekunde) 3 globale Variablen wie folgt hochgezählt:
1
/* Globale Variablen definieren */
2

3
volatile uint8_t ValueS;
4
volatile uint8_t ValueM;
5
volatile uint8_t ValueH;
6
volatile uint8_t TimeChanged;
7

8
/* ISR für den Compare Match 1A Interrupt*/
9
SIGNAL(SIG_OUTPUT_COMPARE1A)
10
{
11
  /* Uhrzeit weiterzählen */
12
  if (++ValueS == 60)
13
  {
14
    ValueS = 0;
15
    if (++ValueM == 60)
16
    {
17
      ValueM = 0;
18
      if (++ValueH == 24)
19
        ValueH = 0;
20
    }
21
  }
22

23
  /* Als Sekundenanzeige die LED's blinken lassen */
24
  PORTB = ~PORTB;
25

26
  /* Änderungsmarker für Zeitanzeige hochzählen */
27
  TimeChanged++;
28
}

Im Hauptprogramm wird das Änderungsflag überprüft (TimeChanged > 0) und
dann die aktuelle Uhrzeit angezeigt:
1
int main(void)
2
{
3
  char buffer[15];        /* Puffer für Stringumwandlung */
4
    
5
  init_io();              /* IO's initialisieren */
6
  init_timer();           /* Timer initialisieren */
7
  lcd_init(LCD_DISP_ON);  /* LCD-Display initialsieren */
8

9
  /* Grundbild auf LCD ausgeben */
10
  lcd_puts("  Thorstens BasUhr");
11
  lcd_gotoxy(6,2);
12
  lcd_puts("00:00:00");
13

14
  /* Endlose Hauptschleife */
15
  for (;;)
16
    if( TimeChanged > 0 )
17
    {
18
      lcd_gotoxy(6,2);
19
      itoa(ValueH, buffer, 2);
20
      lcd_puts(buffer);
21
      lcd_gotoxy(9,2);
22
      itoa(ValueM, buffer, 2);
23
      lcd_puts(buffer);
24
      lcd_gotoxy(12,2);
25
      itoa(ValueS, buffer, 2);
26
      lcd_puts(buffer);
27
      TimeChanged = 0;
28
    }
29
}

Auf dem Display erscheint aber statt meiner Uhrzeit z.B. bei den
Sekunden nicht etwa 1, 2, 3, 4, 5, 6, 7, usw., sondern
0, 1, 10, 11, 100, 101, 110, 111, 1000, usw.

Was mach ich da denn falsch? Wieso wandelt mit itoa das so merkwürdig
um?

Hat da einer eine Idee zu?

Vielen Dank

MfG Thorsten
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren