ПредишенСледващото

#pragma конфигурационния XINST = OFF
#pragma конфигурационния FOSC = HS1
// да RC1 работи както трябва
#pragma конфигурационния SOSCSEL = DIG
#pragma конфигурационния WDTEN = OFF
// защита код
#pragma конфигурационния CP0 = ON
#pragma конфигурационния CP1 = ON
#pragma конфигурационния CP2 = ON
#pragma конфигурационния CP3 = ON

неподписан овъгляване ee_write (неподписан овъгляване АРС, неподписан овъгляване стойност) статичен овъгляване CARRY;

EEADRH = 0;
EEADR = АРС;
EEDATA = стойност;

EECON1bits.EEPGD = 0;
EECON1bits.CFGS = 0;
EECON1bits.WREN = 1;
EECON2 = 0x55;
EECON2 = 0xAA;
EECON1bits.WR = 1;
докато (EECON1bits.WR); // чака до предишния цикъл запис е завършена

Опитах се да пиша по различни начини, включително и с тъпи примера на доковете на микроконтролера, но тя не работи. по-скоро, че работи по следния начин:
Val = 0xFF;
ee_write (0, Val);
Val = ee_read (0); - връща 0xFF

но когато се даде втори път с terminalki на отбора
Val = ee_read (0);
Винаги съм 0.

т.е. Рид pozvraschaet истина само след първия запис (Подозирам, че някъде има стойност).

тема вероятно прост, но аз не разбирам къде съм направил грешка.

Благодаря предварително за отговора.

1. Как да се разчита на този EEPROM в микрона - за от 5 микрона зашити, в едно данни обикновено не води писмен sohranyayutsya- но осоляване нулиране pitalova прочетете 0.
точно когато аз бях там толкова важна константа, запишете си, които след това се влоши - парче желязо в тухлена завой.

2. Когато фърмуера на MPLAB.X използване pickit3 - EEPROM е пълен с ценности 0xff. Не можах да намеря как да го премахнете, т.е. как да кажа на програмиста да EEPROM не пипай?

1. Надеждност, ще бъде по друг начин, след това да използвате нещо друго. Някъде там е мнение, че дългосрочното съхранение на данни трябва да се съхраняват във флаш памет, както и EEPROMe сравнително бързо променящ се (време за работа, грешка дънер, запазват последната стойност преди изключване и т.н.). На пръв поглед в крайна сметка губят заряд и изкривени съдържанието на паметта. Но след това не се вписва опция 20 години запазване на данни.
2. HITECH, например, има __EEPROM () макро за EEPROM инициализация стойности в изходния код.

Благодаря ви, вашата логика е ясна, но когато на 20 години писане в същия дух, е трудно да се възстанови научите повече проблеми възникват само в C
Имам много по-щам такива моменти, когато пишете
ако (а> = 3)
някак си се срещна компилаторът тълкува този израз като смяна, поне аз оставам с впечатлението, е възникнала, защото пренаписване на кода на условията, за да работи правилно. Сега ме е страх от такива сравнения


Естествено тълкува като компенсация, ако той е бил написан, ако (а >> = 3)
където преминаването на най-незначителните битове и 3 бита на променливата "А".
присвояване изрази са валидни и широко използвани
в тези конструкции.
Резултати ако - е 0/0 не е "А" на променливите (стандартни условия)
Това не е в синтаксиса на езика - и желанието да се учи.

като цяло, не мога да разбера какво не може, може ли някой да се намира е тайната?

допълни:
само разопакован нов адаптер и го попитам - работил с него всичко е наред (както трябва), т.е. го прочете, независимо от записите в паметта.
т.е. проблемът възниква на адаптери, които са работили за известно време - за мен, едно, че имам шест месеца непрекъснато reflash и клиента, който го използва непрекъснато.
т.е. нещо се случи с МС с течение на времето, което не му позволява да се чете правилно EEPROM.

частично, разбрах какъв е проблемът.
Аз открих, че един бъг в моя адаптер (който постоянно се шие) стана, когато той получи храна от pikkit3. Когато се събира редовно схемата alaptera всичко работи правилно. Освен това открих, че ако не го промените, за да забраните MK отговаря за програмирането и свържете отново всичко отново работи правилно. т.е. Вероятно точно след мига някъде нещо не е разтопен.
един въпрос остава - да се счупена в клиентски адаптер и да играят с него, че може да излезе.
като цяло, се обърна разговора със себе си, но тези проблеми вероятно само себе си и може да реши (да разберат какво може да се отрази)

Свързани статии

Подкрепете проекта - споделете линка, благодаря!