PIC18F2520 mplab x xc8 EEPROM

时间:2016-07-18 12:25:21

标签: pic mplab eeprom

Platform MPLAB X
CPU PIC18F2520
Compiler XC8 v1.38

我们正在将项目从旧的(htc)编译器移动到MPLAB X. 平台但无法访问EEPROM。

旧编译器支持eeprom_read和eeprom_write但XC8 不是,有定义它们的定义,但它们是“空的”。 (xc.h包括htc.h,其中包括pic18.h) 在pic.h中的行

#if _EEPROMSIZE > 0 && defined(_PLIB)

不会触发,而是相应的#else 似乎既未定义_EEPROMSIZE也未定义_PLIB。

为什么旧的(eeprom_read和eeprom_write) xc8不支持?

我们应该怎样做才能访问EEPROM?

我们试着看看Microchip Code Configure会做什么, 但MCC不支持CPU PIC18F2520。

The chip do have 256 byte eeprom according to

http://ww1.microchip.com/downloads/en/DeviceDoc/39631E.pdf

此致

2 个答案:

答案 0 :(得分:1)

是的,正如您所发现的,Microchip已在MPLAB X IDE中删除了PIC18系列微控制器的EEPROM读/写功能。它已将宏保留为空壳(EEPROM_READ()eeprom_read()等),它们不会抛出编译器错误/警告,但实际上不会执行任何操作

pic18.h建议如果#if _EEPROMSIZE > 0 && defined(_PLIB)为真,那么宏将被填充,但是通过手动添加PLIB宏定义,编译器然后抱怨无法找到{ {1}}。我找不到合适的地方从。下载“plib”。

一种选择是恢复直接寄存器操作以执行EEPROM读/写(有关一个特定PIC18 micro的EEPROM寄存器定义,请参见http://ww1.microchip.com/downloads/en/DeviceDoc/39626e.pdf的第75页)。我编写了以下函数,这些函数将其抽象出去并提供与Microchip删除的类似的功能:

plib.h

答案 1 :(得分:0)

使用MCC 选择内存模块,它将创建memory.c,其中包含所需的所有功能