Conv 0 27 июля, 2021 Опубликовано 27 июля, 2021 · Жалоба Уважаемые! Было одно оборудование на PIC18F27K40, которое работало себе, но понадобилась модернизация, которая задействует EEPROM. И тут выяснилась странная штука. В адресном пространстве EEPROM занимает поле от 0x310000 до 0x3103FF, т.е минимум 24-битная разрядность. В то же время в описании контроллера соответствующий регистр адреса имеет всего 16 разрядов (на самом деле 11). Более того, MCC выдал вот такую, например, функцию: void DATAEE_WriteByte(uint16_t bAdd, uint8_t bData) { uint8_t GIEBitValue = INTCONbits.GIE; // Save interrupt enable NVMADRH = ((bAdd >> 8) & 0x03); NVMADRL = (bAdd & 0xFF); NVMDAT = bData; NVMCON1bits.NVMREG = 0; NVMCON1bits.WREN = 1; INTCONbits.GIE = 0; // Disable interrupts NVMCON2 = 0x55; NVMCON2 = 0xAA; NVMCON1bits.WR = 1; // Wait for write to complete while (NVMCON1bits.WR) { } bAdd - 16 бит. Попытка использовать эту функцию ни к чему не приводит, нет записи. Но и ошибки нет. Чего не хватает? Спасибо! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться