Ukladani nastaveni v programu pro MCU

Jan Waclawek konfera na efton.sk
Středa Červen 1 15:00:38 CEST 2016


V C je to priamo zakladny modus operandi, ale v Pascale je neslusne
pouzivat type punning resp. na to ani nie su prostriedky, aj ked mozno
smernik na tento ucel znasilnit pojde.

Existuje aj ekvivalent unionu (co je druha forma type punningu, rovnako
neslusna), tzv. variantny record, ale pozrel som sa do manualu k mikroe
pascalu a nemaju ho tam, takze tipujem ze nebude. Je mozne, ze to je
rozsirenie pochadzajuce od Borlandu.

wek


----- Original Message ---------------
>Udělal bych jednu velkou nadřazenou strukturu, ve které to všechno bude. K ní se pak dá přes pointer přistupovat jako k poli a po bajtech kopírovat mezi EEPROM a RAM.
>
>PH
>
>From: hwnews konference 
>jiz po nekolikate nad tim dumam a nejsem schopny se rozmyslet jak vec resit...
>
>Rozhodl jsem se prastit do toho MPPT solarniho reglu a nejak jej dotahnout aby byl i uzivatelsky privetivy - hlavne jde o to jej nejak rozumne konfigurovat z nejakeho terminalu.
>
>Jenze nez jsem se dostal k tomu tak jsem zjistil, ze prvotni bude vubec ta data nejak zorganizovat abych se moc nedrel...
>
>V nastaveni reglu je radove desitky konfiguracnich promennych v rozsahu 8-32bitu - navic je nelze menit jednu po druhe, nebot nektere jsou spolu svazane - je tedy nutne mit pracovni banku registru a pak tu konfiguracni a nejakym pokynem z terminalu se to z te konfiguracni prepise cele do te pracovni.
>
>Dalsi vec je, ze pracovni banka by mela byt ulozena v EEPROM, ktera je organizovana osmibitove musim tedy mit nejak zorganizovano kde co konci...
>
>zatim jsem se propracoval k nadefinovani typu registru:
>
>type Reg_dword = record
>    modi           : boolean;  //modifikace konfiguracni banky
>    r0             : dword;   // pracovni banka
>    r1             : dword;   // konfiguracni banka
>    eeprom         : word;  //pocatecni adresa
>    delka          : byte;    //pocet byte registru v EEPROM
>end;
>
>type Reg_word = record
>    modi           : boolean;
>    r0             : word;
>    r1             : word;
>    eeprom         : word;
>    delka          : byte;
>end;
>
>type Reg_byte = record
>    modi           : boolean;
>    r0             : byte;
>    r1             : byte;
>    eeprom         : word;
>    delka          : byte;
>end;
>
>tohle ale resi popis tech vlastnich promennych - neresi to silenou pracnost s modifikacema a hromadnymi operacemi - idelani by bylo mit moznost tyhle registry v nejakem poli, kde jej pak mohu v prikazech terminalu snadno trefovat stylem pole[1].r0 a v cyklech treba ukladat do EEPROM aniz bych musel striktne resit adresovani - stacilo by si v cyklu pripocitavat aktualni adresu.
>Problem je, ze do pole ruzne recordy nenacpu nebo nevim jak na to....


Další informace o konferenci Hw-list