void IapProgram(int addr, unsigned char dat)
{
IAP_CONTR = WT_24M;
IAP_CMD = 2;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_DATA = dat;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
IapIdle();
}
void IapIdle()
{
IAP_CONTR =0;
IAP_CMD =0;
IAP_TRIG =0;
IAP_ADDRH =0x80;
IAP_ADDRL =0;
}
IapErase(0x0000); //擦除
IapProgram(0x0000,XXX);
IapProgram(0x0001,XXX);
IapProgram(0x0002,XXX);
連續寫可以這樣干吧,IapIdle(); 是不是要從寫函數拿出來放在最后
|