Dabar forume
[ Administratorius ] [ Moderatorius ]
|
|
Daugiau
|
|
|
|
|
| Rodyti ankstesnę temą :: Rodyti sekančią temą |
| Pranešimas |
Autorius |
Parašytas: Antr. 06 07, 2011 17:04 Rašyti temą: |
|
|
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... |
|
R2-D2
Prisijungė: 2011 06 07 Žinutės: 2
|
|
Atgal į viršų |
 |
Parašytas: Tr. 06 08, 2011 7:15 Rašyti temą: |
|
|
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. _________________ Išvada gimsta tada, kai nusibosta galvoti |
|
Otto

Prisijungė: 2008 08 31 Žinutės: 1648 Miestas: Biržai
|
|
Atgal į viršų |
 |
Parašytas: Pir. 06 13, 2011 14:22 Rašyti temą: |
|
|
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. |
|
R2-D2
Prisijungė: 2011 06 07 Žinutės: 2
|
|
Atgal į viršų |
 |
Parašytas: Pen. 06 17, 2011 21:59 Rašyti temą: |
|
|
| R2-D2 rašo: |
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... |
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... |
|
sk
Prisijungė: 2011 06 17 Žinutės: 4
|
|
Atgal į viršų |
 |
|
|
|
|
Jūs negalite rašyti naujų pranešimų šiame forume Jūs negalite atsakinti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|