- static unsigned short EE_FindValidPage(unsigned char Operation)
- {
- unsigned short PageStatus0 = 6, PageStatus1 = 6;
-
- PageStatus0 = (*(volatile unsigned short*)PAGE0_BASE_ADDRESS);//获取PAGE0实际状态
- PageStatus1 = (*(volatile unsigned short*)PAGE1_BASE_ADDRESS);//获取PAGE1实际状态
- //读或写操作
- switch (Operation)
- {
- case WRITE_IN_VALID_PAGE: //写操作
- if (PageStatus1 == VALID_PAGE)//错误在这里//#define VALID_PAGE ((unsigned short)0x0000) /* PAGE containing valid data */
- {
- /* 第0页接收数据 */
- if (PageStatus0 == RECEIVE_DATA)
- {
- return PAGE0; //PAGE0有效
- }
- else
- {
- return PAGE1; //PAGE1有效
- }
- }
- else if (PageStatus0 == VALID_PAGE)
- {
- /* 第1页接收数据 */
- if (PageStatus1 == RECEIVE_DATA)
- {
- return PAGE1; //PAGE1有效
- }
- else
- {
- return PAGE0; //PAGE0有效
- }
- }
- else
- {
- return NO_VALID_PAGE; //没有有效的页
- }
- //-----------------------------------------------------------------------------------------
- case READ_FROM_VALID_PAGE: //读操作
- if (PageStatus0 == VALID_PAGE)
- {
- return PAGE0; //PAGE0有效
- }
- else if (PageStatus1 == VALID_PAGE)
- {
- return PAGE1; //PAGE1有效
- }
- else
- {
- return NO_VALID_PAGE ; //没有有效的页
- }
- //-----------------------------------------------------------------------------------------
- default:
- return PAGE0; //PAGE0有效
- }
- }
|