Ukladani nastaveni v programu pro MCU
hwnews konference
hwnews na cncnet.info
Čtvrtek Červen 2 15:17:51 CEST 2016
jde mi o to si co nejvic ulehcit praci pri praci s prikazy terminalu - mam
navrzene nejakou takovou syntaxi
// syntaxe
// r001*; - vypise nastaveni registru r001 - jak run hodnotu tak set
// r001$45; - zapise do r001 hodnotu 45 do set hodnoty
// r001#; - prepise hodnotu z set do run
// c001!; - vykonna prikaz c001
tedy pokud to mam ve trech polich tak to musim jeste v tom prikazu nejak
vyspecifikovat abych vedel do ktereho pole namirit index (cisla za r)
samozrejme muzu to udelat tak, ze prikazy budou b001 nebo w001 nebo d001,
ale musim to porad nekde drzet v hlave co je jakej typ - hlavne uzivatelsky
je to uplne mimo
nebo to muzu udelat tak ze 000 az 099 je byte , 100 az 199 je word atd..
to proc se mi to nechce mit vsechno v dwordu je ze ty hodnoty v pracovnich
registrech chci pouzivat normalne v kodu a pocitat vsechno ve 32b se mi moc
nezamlouva
aspon tedy predpokladam, ze prekladac jakmile uvidi tohle
a : dword;
b : byte;
c : word;
c:=a*b;
to spocita jako 32b*32b a pretypuje na word
RV
Dne 2. června 2016 15:00 Zdeněk Aster <Zdenek.Aster na seznam.cz> napsal(a):
> Napadají mě samé šílenosti, podstata je, že netuším čemu je potřeba se
> vyhnout a čeho docílit.
> Nicméně pokud by člověk chtěl třeba přehlednost v definici těch
> konstant,tak určitě by šlo definovat
> pole takhle.
>
> const
> //word pole
> rUmaxBat = 0; //mV konecne nabijeci napeti cyklicke - EEPROM
> A-B
> rUfloatBat = 1; //mV konecne nabijeci napeti float - EEPROM C-D
> rOffsetMppt = 2; //OffsetMppt - mV offset regulace mppt -
> EEPROM E-F
> rUchargOn = 3; //UchargOn - mV napeti pri kterem zapinam
> dobijeni - EEPROM 12-13
> rUchargOff = 4; //UchargOff - mV napeti pri kterem vypinam
> dobijeni - EEPROM 14-15
> rUzatezOn = 5; //UzatezOn - mV napeti pri kterem zapinam
> zatez - EEPROM 16-17
> rUzatezOff = 6; //UzatezOff - mV napeti pri kterem vypinam
> zatez - EEPROM 18-19
> rUpanic = 7; //Upanic - napeti pri kterem se vse zastavi -
> bitove rozliseni - EEPROM 20-21
> //dword pole
> rNecoDword = 8;
> ................
> // byte pole
> rNecoByte = 16;
> .......
>
> rv_w : array[0..7] of Reg_word;
> rv_d : array[8..15] of Reg_dword;
> rv_b : array[16..30] of Reg_byte;
>
> Jsou to sice tri pole, ale index muzete resit krasne postupne, a i
> kompilator by mel hlasit chybu,
> pri pouziti blbeho indexu v blbem poli a pokud to nadefinujete za sebou a
> nebude kompilator
> blbnout tak by to slo do eeprom ulozit jednou funkci. Adresa prvniho pole
> a secit delky vsech poli.
>
> Writeeeprom( PBytearray(@rv_w),sizeof(rv_w)+sizeof(rv_d)+sizeof(rv_b),
> pozice_v_eprom);
>
> Zdenek Aster
>
>
>
------------- další část ---------------
HTML příloha byla odstraněna...
URL: <http://list.hw.cz/pipermail/hw-list/attachments/20160602/88c9b687/attachment.html>
Další informace o konferenci Hw-list