реклама на сайте
подробности

 
 
> PIC16 XC8 запись во flash программ, проблемы с записью в память программ
van_de_luxe
сообщение Jun 11 2014, 06:30
Сообщение #1





Группа: Участник
Сообщений: 14
Регистрация: 1-04-10
Пользователь №: 56 348



Контроллер PIC16LF1709
Компилятор XC8

Необходимо в контроллере хранить калибровочные поправки в возможностью изменения.
Чтение и стирание памяти сделать получилось, делал как описано в даташите
Код
uint16_t ReadWordFlash(uint16_t adr){
    PMADR = adr;
    CFGS = 0;
    RD = 1;
    NOP();
    NOP();
    return PMDAT;
}


void EraseRowFlash(uint16_t adr){
    uint8_t StatusGIE = GIE;
    GIE = 0;
    PMADR = adr;
    CFGS = 0;
    FREE = 1;
    WREN = 1;
    //unlock sequense
    PMCON2 = 0x55;
    PMCON2 = 0xAA;
    //start erase
    WR = 1;
    //wait
    NOP();
    NOP();
    //wait ~2ms operation
    WREN = 0;
    GIE = StatusGIE;
}


А вот с записью проблемы. Делал по тому же даташиту, но в результате в памяти никаких изменений. (код сократил до записи в память 1 слова)
Код
void WriteRowFlash(uint16_t adr){
    uint8_t StatusGIE = GIE;
    GIE = 0;
    CFGS = 0;
    PMADR = adr;
    FREE = 0;
    LWLO = 1;
    WREN = 1;
    PMDAT = 0xaaaa;
    LWLO = 0;
    //unlock sequense
    PMCON2 = 0x55;
    PMCON2 = 0xAA;
    //wait
    NOP();
    NOP();    
    WREN = 0;
    GIE = StatusGIE;
}


Подскажите, что делаю не правильно

Сообщение отредактировал van_de_luxe - Jun 11 2014, 06:35
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd September 2025 - 07:50
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016