unsigned int IapRead_two(unsigned int addr)
{
unsigned int dat;
IAP_CONTR = WT_24M;
IAP_CMD = 1;
IAP_ADDRL = addr;
IAP_ADDRH = addr >> 8;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
dat = IAP_DATA;
dat=dat<<8;
if(++IAP_ADDRL == 0)
IAP_ADDRH++;
IAP_TRIG = 0x5a;
IAP_TRIG = 0xa5;
_nop_();
dat |= IAP_DATA;
// IapIdle();
return dat;
}
读两个可以这个干吗
下面这个程序,烧录后第一次上电,读了一个521,不知道为什么,还没写数据
SK_Data_KHz_switch = IapRead(0x0000); //读频率8位
SK_Data_KHz = IapRead_two(0x0100); //读强度 16位
if(SK_Data_KHz!=0)
{
SK_HZ_satar(SK_PWM[SK_Data_KHz_switch]); //加载频率
}
else
{
SK_Data_KHz_switch=50; //eerporm 为什么,加载默认初值
SK_Data_KHz=250;
}