marek48maly Napisano Styczeń 20, 2017 Udostępnij Napisano Styczeń 20, 2017 Nie wiem jak zrobić żeby wyświetlało temperature po przecinku np: 26.05 wyświetła mi tylko dwie pierwsze liczby w biblioteka UTFTGLUE.h Fragment kodu: myGLCD.setBackColor(0, 0, 0); myGLCD.setColor(178, 34, 34); myGLCD.printNumI( t_piec_ust , 170, 2); Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 20, 2017 Udostępnij Styczeń 20, 2017 A wcześniej, zanim zacząłeś tej biblioteki używać, czy zadałeś sobie trud choćby pobieżnego przejrzenia jej dokumentacji czy tylko wklejasz sobie kawałki cudzych kodów? Bo jeśli przejrzałeś, to na pewno dotarłeś do listy dostępnych funkcji i zauważyłeś różnicę między printNumI() a printNumF(), prawda? A jeśli nie, to zrób to teraz i nie marnuj naszego czasu (dla leniwych: strona 7): http://www.rinkydinkelectronics.com/resource/UTFT/UTFT.pdf Acha, i postaraj się dowiedzieć co znaczy "type casting" w C, bo skoro funkcja oczekuje argumentu typu int a Ty wysyłasz jej (zapewne) float to takie zjawisko właśnie zachodzi. Dobrze jest mieć pojęcie co się we własnym programie dzieje. Link do komentarza Share on other sites More sharing options...
marek48maly Styczeń 20, 2017 Autor tematu Udostępnij Styczeń 20, 2017 Nie jest to biblioteka UTFT.h jak by ktoś nie zauważył jest to UTFTGLUE.h i w tej bibliotece komenda myGLCD.printNumF nie działa tak jak i zmiana czcionki i nie wklejam cudzych linijek Jestem początkującym Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 20, 2017 Udostępnij Styczeń 20, 2017 Drogi początkujący, zobacz, tu masz dwie linijki kodu z nagłówka UTFTGLUE.h: void printNumI(long num, int x, int y, int length=0, char filler=' ') { char buf[16]; ltoa(num, buf, 10); settextcursor(buf, x, y); MCUFRIEND_kbv::print(buf);} void printNumF(double num, byte dec, int x, int y, char divider='.', int length=0, char filler=' ') { settextcursor((char*)"", x, y); MCUFRIEND_kbv::print(num, dec);} Ja tam widzę obie funkcje i tak jak zapowiada dokumentacja jedna oczekuje liczby typu long (a więc całkowitego) a druga double (czyli zmiennoprzecinkowego). Potrzebują różnej liczby argumentów i znaczą one co innego, ale to chyba sam widzisz. I co to znaczy "nie działa"? Nie kompiluje się, nie daje żadnych wyników, wypisuje głupoty, program zwisa? Czy mógłbyś pokazać fragment swojego programu w którym wołasz printNumF() i to "nie działa"? Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
marek48maly Styczeń 20, 2017 Autor tematu Udostępnij Styczeń 20, 2017 Zrobiłem przykładowy kod: ale i tak się nie kompiluje #include #include UTFTGLUE myGLCD(0x0154, A2, A1, A3, A4, A0); #include double i = 23.34; uint8_t YP = A1; uint8_t XM = A2; uint8_t YM = 7; uint8_t XP = 6; uint8_t SwapXY = 0; uint16_t TS_LEFT = 920; uint16_t TS_RT = 150; uint16_t TS_TOP = 940; uint16_t TS_BOT = 120; TouchScreen ts = TouchScreen(XP, YP, XM, YM, 300); TSPoint tp; #define MINPRESSURE 20 #define MAXPRESSURE 1000 void setup() { TS_LEFT = 920; TS_RT = 150; TS_TOP = 940; TS_BOT = 120; SwapXY = 0; ts = TouchScreen(XP, YP, XM, YM, 300); randomSeed(analogRead(5)); pinMode(A0, OUTPUT); digitalWrite(A0, HIGH); myGLCD.InitLCD(); myGLCD.clrScr(); myGLCD.fillScr(0, 0 , 0);// tło Czarne } void loop() { myGLCD.setTextSize(3); myGLCD.setBackColor(0, 0, 0); myGLCD.setColor(255, 255, 255); myGLCD.printNumF(i, 12, 48); } [ Dodano: 20-01-2017, 13:00 ] Znalazłem rozwiązanie mojego problemu zamykam temat __________ Komentarz dodany przez: Treker Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum. Link do komentarza Share on other sites More sharing options...
marek1707 Styczeń 20, 2017 Udostępnij Styczeń 20, 2017 A "nie kompiluje" to u Ciebie znaczy "nie działa"? Bo wiesz, jeśli nie umiesz napisać poprawnego w danym języku programu to wcale nie oznacza, że użyte biblioteki mają błędy. Zdradzisz znam tajemnicę komunikatów kompilatora czy mamy sami się domyślić co Ci tam wypisał? Z resztą, skoro nawet nie pochyliłeś się żeby zajrzeć do dokumentacji, to dlaczego miałbyś czytać komunikaty kompilatora. A wiem, że nie zajrzałeś do wskazanego dokumentu bo od razu byś zauważył, że printNumF() potrzebuje min. 4 argumentów. Napisałem Ci nawet "Potrzebują różnej liczby argumentów", ale pewnie przydługi był post albo jakoś tak.. To, że jesteś początkującym nie zwalnia Cię od dociekliwości, czytania i zrozumienia. Na koniec zostawiam Ci przyjemność odkrycia co owe 4 argumenty oznaczają. EDIT: Brawo, więcej skupienia i będziesz sobie radził. A zamknąć tematu to chyba nie możesz 😐 1 Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »