📄 sys_check.c
字号:
#include "INCLUDE\config.h"
__eeprom int8u SYSID[8] @0x10;
__eeprom int8u SYSFI @0x08;
void check(int8u id,int8u *s)
{
int8u i,j,k;
int8u buf[8];
buf[0]=id;
buf[1]=~id;
buf[2]=id^0x55;
buf[3]=id^0xFF;
for(i=0;i<8;i++)
{
j>>=1;
if(id&0x80)j|=0x80;
id<<=1;
}
id=j;
buf[4]=id;
buf[5]=~id;
buf[6]=id^0x55;
buf[7]=id^0xFF;
for(i=0;i<8;i++)
{
*(s+i)=0;
}
for(i=0;i<8;i++)
{
for(j=0;j<8;j++)
{
id=(i+j)&0x07;
if(j==0)k=0x01;
else k<<=1;
*(s+i)|=(buf[id]&k);
}
}
}
int8u id_fc(int8u *s)
{
int8u i,da=0;
for(i=0;i<8;i++)
{
if(*(s+i)!=SYSID[i])da=1;
}
return da;
}
void sys_ch(void)
{
int8u a,id_buf[8];
check(OSCCAL,&id_buf[0]);
a=id_fc(&id_buf[0]);
if(SYSKK)
{
if(a)SYSFI=0xAA;
}
else
{
for(a=0;a<8;a++)
{
SYSID[a]=id_buf[a];
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -