Stránka 1 z 1

Překladač MIKRO C PRO 6.1

Napsal: 22 pro 2013, 13:55
od epes
Zná nebo používá někdo vývojové prostředí a překladač MIKRO C PRO 6.1 od "Jugoslávské" firmy MIKROELEKTRONIKA?

Napsal: 22 pro 2013, 14:45
od hakamusai
Znám,používám ale pascal. Proč ?

Napsal: 22 pro 2013, 15:40
od epes
Překladač odmítá příkaz sprinf, a to nejen pro ATTINY2313, ale i pro spoustu ostatních procesorů.

Napsal: 22 pro 2013, 15:45
od petrfilipi
Taky jedu v MikroPascalu a jenom na PICech.
Můžeš sem dát nejmenší nefunkční příklad?
Taky se mrkni sem: http://www.ebastlirna.cz/modules.php?na ... ic&t=42562
a taky tady něco je: http://forum.mcontrollers.com/viewtopic ... 39c72c4d73

Petr Filipi

Napsal: 22 pro 2013, 17:28
od epes
Zřejmě vůbec nezáleží na složitosti programu, neboť i dvouřádkový kód je nepřeložitelný - i z jejich příkladu:

double ww = -1.2587538e+1;
char buffer[15];
void main(){

sprintf(buffer, "%12e", ww); // Format ww and store it to buffer
}

Z toho co jsem si přečetl na uvedených odkazech a vzhledem k tomu, že třeba na ATMEGA 128 to překladač bere, bude ta fce opravdu žrout paměti,
kterou ty menší procesory nemají a tak prostě překladač fci sprint raději nezná.
Neví někdo náhodou jak tuto, určitě ne jedinou lahůdku od Slovinců, nějak obejít?

Napsal: 22 pro 2013, 18:54
od petrfilipi
Já jsem tento týden doháněl resty a potřeboval jsem zobrazovat na LCD displeji počet generovaných impulsů a v MikroPascalu jsem na převod z typu longint na string použil funkci longinttostr.
A pak jsou jednotlivé znaky stringu adresovatelné jako prvky pole typu char a je možné je převézt např. na byte apod, např.:

const
pocet_impulsu:longint = 821962

var
i:byte;
cislo_s:array[11] of char;
cislo_w:array[0..10] of byte;

begin
longinttostr(pocet_impulsu, cislo_s);
for i:=0 to 10 do begin
case cislo_s[i] of
'0' : cislo_w[i]:=0;
'1' : cislo_w[i]:=1;
'2' : cislo_w[i]:=2;
'3' : cislo_w[i]:=3;
'4' : cislo_w[i]:=4;
'5' : cislo_w[i]:=5;
'6' : cislo_w[i]:=6;
'7' : cislo_w[i]:=7;
'8' : cislo_w[i]:=8;
'9' : cislo_w[i]:=9;
'' : cislo_w[i]:=0;
end;
end;
end.

Takto je to v Pascalu. Nevím přesně co funkce sprintf má dělat, ale nějaká funkce floattostr v Céčku taky je (popis je tady: http://www.mikroe.com/download/eng/docu ... op_of_page)