Witajcie na potrzeby forum.atnel.pl napisałem malutką funkcję do istniejących bibliotek LCD HD44780 z Niebieskiej Książki wydawnictwa Atnel.
Do bibliotek lcd44780 z BB:
dodajemy do pliku .h deklarację funkcji:
|
1 |
void lcd_offset_r(uint8_t y, uint8_t offset, uint8_t max_znakow, char * cyfry); //ustawienie liczb do prawej strony |
do pliku .c biblioteki lcd44780 dodajemy funkcję:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
void lcd_offset_r(uint8_t y, uint8_t offset, uint8_t max_znakow, char * cyfry){ uint8_t wynik = strlen(cyfry); uint8_t do_prawej = LCD_COLS - wynik; do_prawej = do_prawej - offset; uint8_t zajete_znaki = do_prawej - max_znakow + wynik; int8_t x; for(x = zajete_znaki; x<do_prawej; x++){ lcd_locate(y,x); lcd_str(" "); } lcd_locate(y,do_prawej); lcd_str(cyfry); } |
Natomiast w kodzie programu funkcję wywołujemy w ten sposób:
|
1 |
lcd_offset_r(0,3,8, "50000000" ); |
gdzie:
0 to pierwsza linia wyświetlacza – można zamienić na 1 czyli drugą linię wyświetlacza
3 to jest offset czyli ile miejsc pustych zostawiamy po prawej stronie
8 to jest maksymalna ilość znaków
„50000000” wpisujemy maksymalnie 8 cyfrową liczbę to taki maks podaliśmy powyżej ….
a funkcja działa w taki sposób:
Funkcją zajmę się również na dniach by można do niej przekazywać zmienną …
Pozdrawiam




