- void Iap_Idle(void)
- {
- IAP_CONTR&=~IAPEN;
- IAP_CMD=IAP_IDL;
- IAP_TRIG=0x00;
- IAP_ADDRH=0x80;
- IAP_ADDRL=0x00;
- }
-
- unsigned char Iap_Read_Byte(unsigned char sector,unsigned int addr)
- {
- return *(CBYTE+IAP_OFFSET+sector*0x0200+addr);
- }
-
- //unsigned char Iap_Read_Byte(unsigned char sector,unsigned int addr)
- //{
- // unsigned char dat;
- // unsigned int add;
- // add=sector*0x0200+addr;
- // IAP_CONTR|=IAPEN;
- // IAP_TPS=IAP_TPS_;
- // IAP_CMD=IAP_READ;
- // IAP_ADDRL=add;
- // IAP_ADDRH=add>>8;
- // IAP_TRIG=0x5A;
- // IAP_TRIG=0xA5;
- // _nop_();
- // dat=IAP_DATA;
- // Iap_Idle();
- // return dat;
- //}
-
- void Iap_Program_Byte(unsigned char sector,unsigned int addr,unsigned char dat)
- {
- unsigned int add;
- add=sector*0x0200+addr;
- IAP_CONTR|=IAPEN;
- IAP_TPS=IAP_TPS_;
- IAP_CMD=IAP_WRITE;
- IAP_ADDRL=add;
- IAP_ADDRH=add>>8;
- IAP_DATA=dat;
- IAP_TRIG=0x5A;
- IAP_TRIG=0xA5;
- _nop_();
- Iap_Idle();
- }
-
- void Iap_Erase_Sector(unsigned char sector)
- {
- unsigned int add;
- add=sector*0x0200;
- IAP_CONTR|=IAPEN;
- IAP_TPS=IAP_TPS_;
- IAP_CMD=IAP_ERASE;
- IAP_ADDRL=add;
- IAP_ADDRH=add>>8;
- IAP_TRIG=0x5A;
- IAP_TRIG=0xA5;
- _nop_();
- Iap_Idle();
- }
复制代码
|