[ powersz @ 23.12.2014. 20:46 ] @
Postovanje, imam jedan problem. Pokusavam da ispisem integer na LCD na sledeci nacin.

char ispisati;
int broj=5;

IntToStr(broj, ispisati);
Lcd_Out(1,1,ispisati);

Medjutim jedinica se ne ispisuje na pocetku ekrana kao sto ocekujem vec negde na sredini.
Da li neko zna zbog cega se ovo desava i kako da resim?

Unapred hvala.
[ uart @ 24.12.2014. 05:59 ] @
Citat:
Postovanje, imam jedan problem. Pokusavam da ispisem integer na LCD na sledeci nacin.

char ispisati;
int broj=5;

IntToStr(broj, ispisati);
Lcd_Out(1,1,ispisati);

Medjutim jedinica se ne ispisuje na pocetku ekrana kao sto ocekujem vec negde na sredini.
Da li neko zna zbog cega se ovo desava i kako da resim?

Unapred hvala.


Tako radi funkcija IntToStr MikroC kompajlera:
"Converts input signed integer number to a string. The output string has fixed width of 7 characters including null character at the end (string termination). The output string is right justified and the remaining positions on the left (if any) are filled with blanks."

Ako ispis treba da bude levo formatiran pre poziva funkcije Lcd_Out treba izbaciti vodeće blank karaktere. Ovde ima dosta primera kako se to može uraditi http://stackoverflow.com/quest...ving-spaces-from-a-string-in-c.





[Ovu poruku je menjao uart dana 24.12.2014. u 07:12 GMT+1]
[ zarkocgyus @ 24.12.2014. 06:35 ] @
Mislim da promenljiva "ispisati" treba da bude niz od 7 karaktera..
[ draganko2000 @ 24.12.2014. 09:08 ] @
Citat:
uart:
Citat:
Postovanje, imam jedan problem. Pokusavam da ispisem integer na LCD na sledeci nacin.

char ispisati;
int broj=5;

IntToStr(broj, ispisati);
Lcd_Out(1,1,ispisati);

Medjutim jedinica se ne ispisuje na pocetku ekrana kao sto ocekujem vec negde na sredini.
Da li neko zna zbog cega se ovo desava i kako da resim?

Unapred hvala.


Tako radi funkcija IntToStr MikroC kompajlera:
"Converts input signed integer number to a string. The output string has fixed width of 7 characters including null character at the end (string termination). The output string is right justified and the remaining positions on the left (if any) are filled with blanks."

Ako ispis treba da bude levo formatiran pre poziva funkcije Lcd_Out treba izbaciti vodeće blank karaktere. Ovde ima dosta primera kako se to može uraditi http://stackoverflow.com/quest...ving-spaces-from-a-string-in-c.





[Ovu poruku je menjao uart dana 24.12.2014. u 07:12 GMT+1]


MikroC ima funkciju za brisanje vodećih blank karaktera Ltrim

Lcd_Out(1,1,Ltrim(ispisati))
[ powersz @ 24.12.2014. 12:27 ] @
Pokusao sam da iskoristim Ltrim funkciju i dobijam sledecu gresku:

73 324 Undeclared identifier 'Ltrim' in expression LED_Blinking.c
73 307 Illegal typecast 'can not convert to pointer' '' LED_Blinking.c
0 102 Finished (with errors): 24 Dec 2014, 13:16:50 LED_Blinking.mcp51


Probao sam dve funkcije sa stackoverflow-a i dobijam gresku, verovatno nesto radim pogresno...


0 121 Compilation Started LED_Blinking.c
29 374 Const expression expected LED_Blinking.c
86 390 Illegal expression with void LED_Blinking.c
0 102 Finished (with errors): 24 Dec 2014, 13:23:23 LED_Blinking.mcp51
[ powersz @ 24.12.2014. 18:59 ] @
Nasao sam funkciju koja radi

Code:

void TrimLeft(char *str) {
char count  = 1;
  while (*str++ != 0) {
         if (*str != 32) {
            *(str - count--) = *str;
         }
         count++;
  }

}


Hvala Vam :)
[ draganko2000 @ 24.12.2014. 20:09 ] @
U mikroC PRO for PIC provjereno radi

char txt[7];
unsigned int broj=5;

IntToStr(broj, txt);
Lcd_Out(1,1,txt); // ima praznine
Lcd_Out(2,1,ltrim(txt)); // nema praznine
[ powersz @ 24.12.2014. 21:02 ] @
Ja koristim za 8051