Překladač MIKRO C PRO 6.1

Diskuze a poradna o programátorech a programování různých obvodů

Moderátor: Moderátoři

Odpovědět
Zpráva
Autor
Uživatelský avatar
epes
Příspěvky: 120
Registrován: 05 srp 2008, 00:00
Bydliště: Praha 5

Překladač MIKRO C PRO 6.1

#1 Příspěvek 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?
hakamusai
Příspěvky: 939
Registrován: 17 dub 2007, 00:00

#2 Příspěvek od hakamusai »

Znám,používám ale pascal. Proč ?
Uživatelský avatar
epes
Příspěvky: 120
Registrován: 05 srp 2008, 00:00
Bydliště: Praha 5

#3 Příspěvek od epes »

Překladač odmítá příkaz sprinf, a to nejen pro ATTINY2313, ale i pro spoustu ostatních procesorů.
petrfilipi
Příspěvky: 2902
Registrován: 13 zář 2005, 00:00

#4 Příspěvek 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
Uživatelský avatar
epes
Příspěvky: 120
Registrován: 05 srp 2008, 00:00
Bydliště: Praha 5

#5 Příspěvek 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?
petrfilipi
Příspěvky: 2902
Registrován: 13 zář 2005, 00:00

#6 Příspěvek 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)
Odpovědět

Zpět na „Programování PIC, ATMEL, EEPROM a dalších obvodů“