[ nikolapirot @ 18.07.2012. 13:30 ] @
Interesuje me kako da konvertujem iz Int u char. Ja sam koristio ovaj kod



int broj;
char a[10];
broj=320;

inttostr(tekst,a);
Lcd_Init(); // Initialize LCD
Lcd_Cmd(_LCD_CLEAR); // Clear display
Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off
Lcd_Out(1,1,Ltrim(a)) ;
Lcd_Out(1,4,a);


I on radi ali ima jednu manu. Brojke vece od 32000 prikazuje kao neke negativne brojeve ne vezane za onaj broj koji sam upisao. Kako da konvertujem iz int u string i da mogu da upisem vece brojeve?
[ bogdan.kecman @ 18.07.2012. 13:48 ] @
mislim da mikroC ima printf()
[ djoka_l @ 18.07.2012. 13:58 ] @
IntToStr ti pretvara podatak tipa ceo broj sa znakom u string. Očigledno je u pitanju 16-bitni ceo broj koji može da ima opseg vrednosti od -32768 do 32767.

U promenljivu tipa int ne možeš da upišeš vrednost veću od 32767.

Ako ti treba ceo broj bez znaka, koristiš promenljivu tipa unsigned i funkciju WordToStr

http://www.mikroe.com/download...versions_library.htm#wordtostr
[ nikolapirot @ 31.07.2012. 01:48 ] @
A to ide do 65535 a ja sada imam 2 registra, jedan je do koliko je brojac stigao posle poslednjeg interupta, a drugi je koliko puta se desio interupt. E sada mene interesuje sledece: imam jedan registar sa 16bitnim brojem i imam jos jedan registar koji predstavlja kolko je puta izbrojao do 65535, a taj broj u mojem slucaju nece biti veci od 10, kako da to saberem i ispisem na LCD-u bez komande printf nego sa komandom LCD_Out(1,1,char);
[ goran_68 @ 31.07.2012. 07:33 ] @
Promenljiva koju zelis da ispises na LCD je ocigledno tipa long jer se odredjuje kao:

drugibrojac * 65536 + prvi brojac

pa mozes koristiti LongToStr ili LongWordToStr