Witam.
Zająłem się dzisiaj tablicami (to w ramach prób odczytu numeru seryjnego z urządzenia Dallasa). Aby sobie ułatwić i sprawdzić jedną z funkcji zdefiniowałem tablicę 16-elementową z wartościami liczbowymi, a następnie chciałbym wyświetlić osiem pierwszych liczb na LCD, w postaci numerycznej, czyli na LCD chcę w tym przypadku uzyskać 12345678 (a nie "krzaczki" spod adresów 1-8 mojego CGROM-u). W tym celu użyłem funkcji itoa(). Niestety, napotkałem pewien opór ze strony kompilatora.
Próba skompilowania tak przygotowanego kodu kończy się powodzeniem, ale kompilator ostrzega:
Co dziwne, jeśli zamiast:
wstawię
to wszystko jest ok. Niestety, wtedy nie osiągam zamierzonego efektu, bo do tablicy bufor1 nie trafia nic... (co jest jasne)
1. Co zrobić, żeby jakoś przerobić zmienne z wartości liczbowych na kody ASCII? A może jakieś rzutowanie typów?
(chcę to później wyświetlić na LCD za pomocą funkcji write_char(), żeby udało się wyświetlić również zera, czego write_text() najwidoczniej nie umie, bo wyświetla mi tylko część seriala...)
Zająłem się dzisiaj tablicami (to w ramach prób odczytu numeru seryjnego z urządzenia Dallasa). Aby sobie ułatwić i sprawdzić jedną z funkcji zdefiniowałem tablicę 16-elementową z wartościami liczbowymi, a następnie chciałbym wyświetlić osiem pierwszych liczb na LCD, w postaci numerycznej, czyli na LCD chcę w tym przypadku uzyskać 12345678 (a nie "krzaczki" spod adresów 1-8 mojego CGROM-u). W tym celu użyłem funkcji itoa(). Niestety, napotkałem pewien opór ze strony kompilatora.
int bufor[16]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
char bufor1[16]; //bufor na przekształcone wartości
char buforz[4]; //bufor pomocniczy
char h;
int i;
for(i=0;i<8;i++) //wypisz na LCD osiem pierwszych znaków z tablicy bufor
{
h=itoa(bufor[i],buforz,10);
bufor1[i]=h;
write_char(bufor1[i]);
}
Próba skompilowania tak przygotowanego kodu kończy się powodzeniem, ale kompilator ostrzega:
warning: assignment makes integer from pointer without a castCo dziwne, jeśli zamiast:
h=itoa(bufor[i],buforz,10);wstawię
itoa(bufor[i],buforz,10);to wszystko jest ok. Niestety, wtedy nie osiągam zamierzonego efektu, bo do tablicy bufor1 nie trafia nic... (co jest jasne)
1. Co zrobić, żeby jakoś przerobić zmienne z wartości liczbowych na kody ASCII? A może jakieś rzutowanie typów?
(chcę to później wyświetlić na LCD za pomocą funkcji write_char(), żeby udało się wyświetlić również zera, czego write_text() najwidoczniej nie umie, bo wyświetla mi tylko część seriala...)