MPLAB - prace s EEPROM

Admin HWnews hwnews na cncnet.info
Pátek Leden 7 14:29:00 CET 2022


Ahoj, v textu...

Dne 06.01.2022 v 20:49 Jan Waclawek napsal(a):
> No tak ja som asi nepochopil, co vlastne bola povodna otazka.
> 
> Ale myslim si, ze zakladny problem je v tom, ze mas privelke ocakavania.
> Ten C prekladac nie je o nic chytrejsi ako ten Pascalovsky prekladac.

no me mate prave to rozsireni EEMEM, ktere rika prekladaci, ze ma tu 
promennou umistit do EEPROM...tak jsem zavahal, ze treba je pak 
cteni/zapis transparentni via nejake rozsireni...mimochodem cekal jsem 
treba ze aspon cteni (prirazeni) by byl takovej bonbonek co by chodit mohlo

> 
>> moje predstava je, ze nadefinuji pole struktur. Jedna
>> cast bude ulozena normalne v kodu tedy ve flash pameti (to jsou data,
>> ktera jsou znama v dobe kompilace) a pak bych rad mel jeste druhou sadu,
>> ktera bude uzivatelsky definovatelna ...treba 10 polozek pole (podle
>> toho co se vejde do EEPROM).
> 
> Ak bola Tvoja predstava ta, ze to bude jedno pole, ktoreho cast bude vo
> FLASH a cast v EEPROM, tak... nie, to nejde.

neeee to samozrejme je mi jasne, ze je scifi

> 
> Takze asi najrozumnejsie riesenie je mat dve polia, jedno vo FLASH a jedno
> v EEPROM, a tiez dve sady funkcii, ktore z tych poli citaju/zapisuju (teda
> zapisuju len v pripade EEPROM). A mat v RAM jednu "pracovnu" kopiu tej
> struktury, do nej si nacitat z FLASH alebo EEPROM podla potreby, a ked
> pride na zapis, tak zapisat znova podla toho, kam to ide. Ano, otrocky.
> Kompilator tu nijako nepomoze.

Ano tak to bude...abych to priblizil...jedna se o dvoukanalovy DA 
prevodnik, ktery po pripojeni cidla (MODBUS a FINET) dotazem zjisti o 
jake cidlo se jedna a na zaklade toho vyhleda konfiguraci, kde ma mimo 
jine napsano jakym zpusobem se mapuje rozsah merene veliciny cidla na 
klasicky proudovy vystup 4-20mA. Vystupni kanaly jsou dva v pripade ze 
cidlo meri dve veliciny. V kodu jsou napevno zname konfigurace 
existujicich cidel a v eeprom bud alternativni konfigurace a nebo 
konfigurace ulozena uzivatelem, ktera nebyla v dobe kompilace znama.

Takze nejdriv prosmejdim konfigurace ulozene v eeprom a kdyz nenajdu tak 
budu hledat ty ve flash.

> 
> Mimochodom, neprezradil si, o ktory prekladac ide, a tak som trocha
> guglil... a klucove slovo EEMEM je... zda sa... ze avr-gcc, premenovany
> Microchipom na XC8. Takze ide o AVR, je to tak? Ak ano, tak bohuzial, na
> citanie/zapis EEPROM nie je ina cesta ako pouzivat obezlicky/funkcie.

Ano je to tak...xc8 a mcu je ATmega328...vsechno je pro me bohuzel uplne 
nove.
> 
> 
>> Tady ale netusim jaky vyznam ma definovat neco v EEPROM...stejne se s
>> tim neda primo pracovat...stejne budu muset pouzit neco takoveho:
>>
>> eeprom_write_block(&DA485_par, &DA485_par_EE, sizeof(DA485_struct));
>>
>> coz mi prijde v podstate uplne to same...
> 
> Ano, v podstate je to uplne to iste ako ked si si v Pascale tie adresy
> pocital. Toto som popisoval v poslednom odstavci toho dlheho textu
> ("Rozdiel medzi...").
> 
> Mimochodom, presne tymto istym vyvojom som prechadzal onoho casu aj ja,
> tiez som si len s nechutou pripustal, ze ta automatizacia, ktoru prekladac
> v tomto smere ponuka, je viacmenej ziadna...

no evidentne zazraky se nedeji...a dekuji za obsahle komenty ;-)

RV


Další informace o konferenci Hw-list