10/05 Kurs C makra

Jeżeli masz jakieś uwagi dotyczące bieżącego lub archiwalnych numerów "Elektroniki dla wszystkich" lub zauważyłeś błędy czy nieścisłości to jest to odpowiednie miejsce aby o tym napisać.
ODPOWIEDZ
jareks91
Użytkownik
Posty: 157
Rejestracja: 15 kwie 2005, 13:30

10/05 Kurs C makra

Post autor: jareks91 » 14 lis 2005, 21:10

Witam,
Chciałbym uzyskać coś podobnego:

#define LCD(x) LCDstr_P("x");

Jednak żeby x było zmienną np:
w programie wpisuje:
LCD(47)
i chciałbym żeby mi to zamieniał na:
LCDstr_P("47")

Jak to wykonać??

Gdyż litery z tablicy zmiennej mozna łatwo wyświetlać natomiast zawartość zmiennych typu liczbowych już sie nie da dalczego?

Proszę o odpowiedź
Pozdrawiam

Awatar użytkownika
gaweł
Użytkownik
Posty: 651
Rejestracja: 05 kwie 2004, 8:38
Lokalizacja: Białystok
Kontakt:

Post autor: gaweł » 15 lis 2005, 21:02

Procedury wyświetlania danych operują na znakach i te są bez problemów wyświetlane na wyświetlaczach. Ty chcesz wyświetlić liczba, więc należy dokonać konwersji liczba z postaci binarnej (tak jak jest trzymana w pamięci) do postaci znakowej. Jeżeli do wyprowadzenia liczba z programu używasz przykładowo funkcji printf, to taką operację wykonuje ta funkcja, jeżeli prosz to na piechotę, to również sam musisz zadbać o taką konwersję.

Awatar użytkownika
Koppel
Użytkownik
Posty: 500
Rejestracja: 24 lip 2005, 18:05
Lokalizacja: Gliwice

Post autor: Koppel » 16 lis 2005, 9:42

Powinno zadziałać:

Kod: Zaznacz cały

#define LCD(x) LCDstr_P(#x)
Przedstawiony kod zadziała w ten sposób, że cokolwiek umieścimy w nawiasie zostanie wzięte w znaki cudzysłowia. Oznacza to, że zapis jak niżej:

Kod: Zaznacz cały

uint8_t a = 10;
LCD(a);
Spowoduje wypisanie na wyświetlaczu:
a
a nie wartości zmiennej (10).

Prosty sposób wyświetlania wartości zmiennej pojawi się w części 6 (EdW12/05)

gaweł :arrow: Nie strasz ludzi :mrgreen:

Pozdrawiam

jareks91
Użytkownik
Posty: 157
Rejestracja: 15 kwie 2005, 13:30

Post autor: jareks91 » 20 lis 2005, 0:26

Koppel pisze:Prosty sposób wyświetlania wartości zmiennej pojawi się w części 6 (EdW12/05)
To całe szczęscie, do grudnia nie daleko wiec poczekam :)
Pozdrawiam

PS: mam nadzieje że pomimo wielkiej chęci autora kursu do wprowadzenia nowej płytki, jeszcze to poczeka i autor wykorzysta możliwości bascomowej płytki:)
Pozdrawiam

ODPOWIEDZ