Komentarai Prisijungti
Viršuje: Seniausi | Naujausi
R2-D2 2011-06-07 18:04
void eeprom_write(unsigned char ee_adr, unsigned char ee_data)
metode reikia pirma tikrinti ar galima rašyti, o ne atvirkščiai: rašyti ir laukti kol nustos rašyti...
INTCONbits.GIE = 1; // leidžiami pertraukimai
EECON1bits.WREN = 0; // draudžiamas EEPROM rašymas
ir kam drausti rašymą po įrašymo? ir net jei dėl mįslingų priežasčių tam pic`e ir reiktų drausti, tai reikėtų vykdyti prieš leidimą pertrauktims! (atominė operacija)
ir dar, pertraukties leidimą reikia grąžinti į seną būklę (pirma įsirašius), o ne bilekaip...
Otto 2011-06-08 08:15
Smalsu, ar naudojant atmegą ir "laikroduką" DS1307, ne daugiau galėtume sukaupti duomenų? Na, turiu mintyje ne vien nustatymų saugojimą. Tie PIC'ai kažkaip ne labai jau prie dūšios, nors pradžia ir buvo būtent su jais.
R2-D2 2011-06-13 15:22
o koks skirtumas PIC ar AVR. jei trūksta atminties imi valdiklį, kuris turi jos daugiau. jei vis tiek trūksta, imi išorinį kokį eeprom. jei vis tiek trūksta, tai SD kortą naudoti reikia.
o tai visiškai nepriklauso nuo valdiklio.
sk 2011-06-17 22:59
Būtent tokia seka rekomenduojama mikrovaldiklių datasheet'uose. Rašymo draudimas naudojamas siekiant išvengti atsitiktinio rašymo. Tai galbūt nenutiks normaliomis darbo sąlygomis, tačiau....
Dėl pertraukčių leidimo ir draudimo sekos - realiai seka turėtų būti (vėlgi pagal gamintoją):
INTCONbits.GIE = 1; //leidžiamos pertrauktys
//vartotojo kodas - kiti procesai
//rašymo pabaigos laukimas - požymo tikrinimas (poling) arba
//rašymo pabaigos pertrauktis
EECON1bits.WREN = 0; // draudžiamas EEPROM rašymas
Jei nebus leistos pertrauktys, nebus "rašymo pabaigos pertraukties".
Be abejo, visada galima ginčytis su gamintojo inžinieriais...
Komentuoti gali tik registruoti lankytojai.
Neregistruotiems lankytojams komentavimas uždraustas siekiant sumažinti
paviršutiniškų, beverčių ir įžeidinėjančių žinučių kiekį.
EEPROM duomenų atminties panaudojimas PIC18 mikrovaldikliuose