|
Re: PIC16F18144 MCC EEPROM設定問題
|
||||
|---|---|---|---|---|
|
管理員
![]() |
a780917a 你好,
可以參考 PIC16F18144 datasheet 的 EEPROM 、 Data Flash Memory 、NVM和 NVMREG Access 相關章節來了解如何訪問 EEPROM。 ![]() ![]() ![]() ![]() 關於使用 MCC 產生的函式來訪問 EEPROM , 可以參考 datasheet 的 NVMREG Access 的 EEPROM 欄位來了解可指定的地址範圍: ![]() Attach file: Data EEPROM Memory.jpg (144.24 KB) Data Flash Memory (DFM).jpg (160.08 KB) NVMREG Read Operation.jpg (101.20 KB) NVMREG Write to DFM.jpg (117.04 KB) EEPROM.jpg (70.06 KB)
發表於: 8/21 15:48
|
|||
|
||||
|
PIC16F18144 MCC EEPROM設定問題
|
||||
|---|---|---|---|---|
|
高級會員
![]() |
PIC16F18144 規格書寫有Data EEPROM (bytes):256
在MCC選取使用時Memory 裡的EEPROM似乎只能與I2C一起用? 設定選項裡出現 Hardware Settings Device Density Page Write Buffer 但我只想單純使用EEPROM 該怎麼設定呢? 選擇ON-chip : NVM後 eeprom.c裡的 eeprom_address_t 與EEPROM_Write(), EEPROM_Read() 沒有被自動定義,該怎麼修改呢? bool EEPROM_ByteWrite(uint32_t address, uint8_t *data) { uint8_t getData = *data; eeprom_address_t writeAddress = (eeprom_address_t) (address); NVM_UnlockKeySet(UNLOCK_KEY); EEPROM_Write(writeAddress, getData); NVM_UnlockKeyClear(); while (NVM_IsBusy()); if (NVM_StatusGet() == NVM_OK) { return true; } else { NVM_StatusClear(); return false; } } bool EEPROM_ByteRead(uint32_t address, uint8_t *data) { eeprom_address_t readAddress = (eeprom_address_t) (address); *data = EEPROM_Read(readAddress); return true; }
發表於: 8/18 15:35
Edited by a780917a on 2025年08月18日 15:59:13
|
|||
|
||||