Czar "0" z przodu... - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Czar "0" z przodu... (/watek-czar-0-z-przodu) Strony:
1
2
|
RE: Czar "0" z przodu... - Lession - 12-02-2023 (12-02-2023, 01:37)Jarewa0606 napisał(a): int czas_pozostaly_proc = (klepsydra_sek/sekundy_ustaw)*100; Napisałem: czas_pozostaly_proc = (float(klepsydra_sek/sekundy_ustaw)*100);, wcześniej kombinowałem z zapisem: (float)(klepsydra_sek/sekundy_ustaw)*100); (jest prawidłowy? kompilator nawet nie pisnął)... niestety nadal jest 0 u mnie. Co ciekawe: float ddd = 100/3600; też daje 0... u mnie... coś trzeba ustawić? Na razie pominąłem te procenty, moze trzeba każdą zmienną osobno zrobić float? Sprawdzę i potwierdzę. RE: Czar "0" z przodu... - Lession - 12-02-2023 Mam prośbę, co źle robię, chcę, aby były 3 znaki specjalne i coś nie wychodzi: Mam zdefiniowane globalnie: byte celsjusz[] = {B00100, B01010, B10001, B01010, B00100, B00000, B00000, B00000}; byte statek[] = {B00100, B00110, B00111, B00100, B11111, B01110, B00000, B00000}; byte clock[] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0}; dalej: w loop lcd.createChar(0, clock); lcd.createChar(1, celsjusz); lcd.createChar(2, statek); lcd.home(); jednak gdy wywołam: lcd.setCursor(0,0); lcd.write(byte(0)); lub lcd.write(0); lub i inne bajty: lcd.write(1); lcd.write(2); , nawet 10 - to zawsze mi pojawia się stateczek... WHY? RE: Czar "0" z przodu... - kaczakat - 12-02-2023 Kod: Co ciekawe: float ddd = 100/3600; też daje 0... u mnie... coś trzeba ustawić? Zrób sobie cała bufor na całą linię do wysłania na ekran by można było używać sprintf do sformatowania całej linii, to działa efektywniej niż dukanie po literce. Stateczku może nie ma ale znak stopnia C na pewno jest w pamięci LCD, możesz to sprawdzić drukując po kolei wszystkie znaki char z LCD, to po prostu liczby od 0-255, czy tam od 0x0 do 0xFF. Np. mój LCD ma coś takiego: [attachment=1317] Więc wystarczy w odpowiednie pole tablicy char wpisać wartość 0xDF by na LCD zobaczyć taki oC. Jak sobie zrobisz customowy znak to raczej trzeba go sobie tam ręcznie dodawać i pamiętać by zlokalizować go w odpowiednie miejsce. Na koniec Twoje znaki pokazują się na LCD normalnie, pewnie masz jakiś czeski błąd w swoim programie, którego nie pokazujesz w całości. RE: Czar "0" z przodu... - MadMrQ - 14-02-2023 Cytat:float ddd = 100/3600żeby to cudo liczyło Ci się z przecinkami musisz co najmniej mianownik zrzutować na float, czyli: Kod: float ddd = 100/(float)3600; Kod: lcd.createChar(0, clock); |