<html><body>No pokud se nelíbí ty tři pole s ruznymy indexi co jsem psal dole tak me napada jedna<div>hodne velka silenost, ale nevim jestli to prevazi nad prakticnosti. Udelal bych tyto definice</div><div>samozrejme zalezi v jakym poradi uklada byte pic/kompilator to netusim, ale to je detail.</div><div><br></div><div><div style="color: rgb(0, 51, 153);">type Reg_dword = record</div><div style="color: rgb(0, 51, 153);"> modi : boolean;</div><div style="color: rgb(0, 51, 153);"> r0 : dword;</div><div style="color: rgb(0, 51, 153);"> r1 : dword;</div><div style="color: rgb(0, 51, 153);"> eeprom : word;</div><div style="color: rgb(0, 51, 153);"> delka : byte;</div><div style="color: rgb(0, 51, 153);">end;</div><div style="color: rgb(0, 51, 153);"><br></div><div style="color: rgb(0, 51, 153);">type Reg_word = record</div><div style="color: rgb(0, 51, 153);"> modi : boolean;</div><div style="color: rgb(0, 51, 153);"> rez0 : word;</div><div style="color: rgb(0, 51, 153);"> r0 : word;</div><div style="color: rgb(0, 51, 153);"> rez1 : word;</div><div style="color: rgb(0, 51, 153);"> r1 : word;</div><div style="color: rgb(0, 51, 153);"> eeprom : word;</div><div style="color: rgb(0, 51, 153);"> delka : byte;</div><div style="color: rgb(0, 51, 153);">end;</div><div style="color: rgb(0, 51, 153);"><br></div><div style="color: rgb(0, 51, 153);">type Reg_byte = record</div><div style="color: rgb(0, 51, 153);"> modi : boolean;</div><div style="color: rgb(0, 51, 153);"> rez0w : word;</div><div style="color: rgb(0, 51, 153);"> rez0b : byte; </div><div style="color: rgb(0, 51, 153);"> r0 : byte;</div><div style="color: rgb(0, 51, 153);"> rez1w : word;</div><div style="color: rgb(0, 51, 153);"> rez1b : byte; </div><div style="color: rgb(0, 51, 153);"> r1 : byte;</div><div style="color: rgb(0, 51, 153);"> eeprom : word;</div><div style="color: rgb(0, 51, 153);"> delka : byte;</div><div style="color: rgb(0, 51, 153);">end;</div></div><div style="color: rgb(0, 51, 153);"><br></div><div><div style="color: rgb(0, 51, 153);">rv_w : array[0..15] of Reg_word; absolute 10; <br></div><div><div style="color: rgb(0, 51, 153);"><div style="color: rgb(0, 0, 0);"><div style="color: rgb(0, 51, 153);">rv_d : array[0..15] of Reg_dword; absolute 10;<br></div><div><div style="color: rgb(0, 51, 153);">rv_b : array[0..15] of Reg_byte; absolute 10;<br></div></div><div><br></div><div>Clovek by musel trosku zjistit jak se chova absolute jak to prekladac vymezi a pouzije jine promene,</div><div>Ale tim docilim toho ze mam vsechny pole pres sebe, v idealnim pripade pokud jsem se trefil bude</div><div>byte nizsi byte word a nejnizsi byte dword. V casti terminalu pouziji 32bytovy prsitup mam jedno pole</div><div> a nemusim nic resit. No a v programu si vyberu kokretni pole, ktere ma tu spravnou velikost.</div><div><br></div><div>Ale asi mi prijde jednodusi zabyvat se dle cisla indexu v terminalu clovek nemusi vedet co to je jestli</div><div>byte,word, dword a v programu to neni az tak hrozne na osetreni....</div><div><br></div><div>Zdenek Aster</div></div></div></div></div><div><br><p>---------- Původní zpráva ----------<br>Od: hwnews konference <hwnews@cncnet.info><br>Komu: HW-news <hw-list@list.hw.cz><br>Datum: 2. 6. 2016 15:18:04<br>Předmět: Re: Ukladani nastaveni v programu pro MCU</p><br><blockquote><div><div>jde mi o to si co nejvic ulehcit praci pri praci s prikazy terminalu - mam navrzene nejakou takovou syntaxi<div><br></div><div><div>// syntaxe</div><div>// r001*; - vypise nastaveni registru r001 - jak run hodnotu tak set</div><div>// r001$45; - zapise do r001 hodnotu 45 do set hodnoty</div><div>// r001#; - prepise hodnotu z set do run</div><div>// c001!; - vykonna prikaz c001</div><div><br></div><div>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)</div><div><br></div><div>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</div><div><br></div><div>nebo to muzu udelat tak ze 000 az 099 je byte , 100 az 199 je word atd..</div><div><br></div><div>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 </div><div><br></div><div>aspon tedy predpokladam, ze prekladac jakmile uvidi tohle</div><div><br></div><div><div> a : dword;</div><div> b : byte;</div></div><div> c : word;</div><div><br></div><div>c:=a*b;</div><div><br></div><div>to spocita jako 32b*32b a pretypuje na word</div><div><br></div><div><br></div><div>RV</div><div><br><div>Dne 2. června 2016 15:00 Zdeněk Aster <span><<a href="mailto:Zdenek.Aster@seznam.cz">Zdenek.Aster@seznam.cz</a>></span> napsal(a):<br><blockquote style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><div>Napadají mě samé šílenosti, podstata je, že netuším čemu je potřeba se vyhnout a čeho docílit.<div>Nicméně pokud by člověk chtěl třeba přehlednost v definici těch konstant,tak určitě by šlo definovat</div><div>pole takhle.</div><div><br></div><div><div style="color:rgb(0,51,153)"><span><div>const</div><div> //word pole</div><div> rUmaxBat = 0; //mV konecne nabijeci napeti cyklicke - EEPROM A-B</div><div> rUfloatBat = 1; //mV konecne nabijeci napeti float - EEPROM C-D</div><div> rOffsetMppt = 2; //OffsetMppt - mV offset regulace mppt - EEPROM E-F</div><div> rUchargOn = 3; //UchargOn - mV napeti pri kterem zapinam dobijeni - EEPROM 12-13</div><div> rUchargOff = 4; //UchargOff - mV napeti pri kterem vypinam dobijeni - EEPROM 14-15</div><div> rUzatezOn = 5; //UzatezOn - mV napeti pri kterem zapinam zatez - EEPROM 16-17</div><div> rUzatezOff = 6; //UzatezOff - mV napeti pri kterem vypinam zatez - EEPROM 18-19</div><div> rUpanic = 7; //Upanic - napeti pri kterem se vse zastavi - bitove rozliseni - EEPROM 20-21</div></span><div><div> //dword pole</div></div><div><div> rNecoDword = 8; <br></div><div> ................</div><div> // byte pole</div><div></div><div> rNecoByte = 16;</div><div> ....... </div><div> </div></div></div></div><div><div style="color:rgb(0,51,153)"><div style="color:rgb(0,0,0)"><span><div style="color:rgb(0,51,153)">rv_w : array[0..7] of Reg_word;<br></div></span><div><div style="color:rgb(0,51,153)"><div style="color:rgb(0,0,0)"><div style="color:rgb(0,51,153)">rv_d : array[8..15] of Reg_dword;<br></div><div><div><div style="color:rgb(0,51,153)">rv_b : array[16..30] of Reg_byte;<br></div></div></div><div><br></div><div>Jsou to sice tri pole, ale index muzete resit krasne postupne, a i kompilator by mel hlasit chybu,</div><div>pri pouziti blbeho indexu v blbem poli a pokud to nadefinujete za sebou a nebude kompilator </div><div>blbnout tak by to slo do eeprom ulozit jednou funkci. Adresa prvniho pole a secit delky vsech poli.</div><div><br></div><div>Writeeeprom( PBytearray(@rv_w),sizeof(rv_w)+sizeof(rv_d)+sizeof(rv_b), pozice_v_eprom);</div><div><br></div><div>Zdenek Aster</div></div></div></div></div></div></div><div><br></div><div><p><br></p></div></div></blockquote></div></div></div></div>
</div>_______________________________________________<br>HW-list mailing list - sponsored by www.HW.cz<br>Hw-list@list.hw.cz<br>http://list.hw.cz/mailman/listinfo/hw-list</blockquote></div></body></html>