Ich bin gerade dabei eine Zahl, die pro Sekunde um eins dekrementiert
wird, auf einem LCD auszugeben. Nach AVR-GCC-Tutorial
(http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/LCD-Ansteuerung#LCD_Beispiel_2)
muss man dazu zuerst diese Zahl durch die in stdlib.h vorhandene
Funktion itoa in einen String umwandeln.
1 | uint8_t counter = 15;
|
2 | char counter_buffer [10];
|
3 | while (counter != 0){
|
4 | itoa (counter, counter_buffer, sizeof (counter_buffer));
|
5 | lcd_clear ();
|
6 | lcd_string (counter_buffer);
|
7 | counter --;
|
8 | }
|
Nun ist mir folgendes aufgefallen:
Verändert man die Größe von counter_buffer auf 2, also
1 | char counter_buffer [2];
|
, wird beim LCD binär heruntergezählt.
Ändert man die Größe von counter_buffer auf 16, also
1 | char counter_buffer [16];
|
, wird beim LCD hexadezimal heruntergezählt.
Warum?