Skocz do zawartości

Biblioteka "UTFTGLUE.h" jak wyświetlić liczby po przecinku


marek48maly

Pomocna odpowiedź

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

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

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

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

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

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 😐

  • Pomogłeś! 1
Link do komentarza
Share on other sites

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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.