📄 watchdog.c
字号:
void dog ( ) /* 初始化看门狗*/
{
cs=1;
delay(1);
cs=0;
delay(1);
cs=1;
outbyt(da); /*向看门狗存储器写入一字节*/
int i,da;
j=da; /*将要写入的字节赋给临时变量j */
for(i=0;i<7;i++) /*左移8位,送到口线si */
{
sck=0;
j=scl(j,1);
si=cy;
sck=1;
} /*每移一位数据,跟一个时钟信号*/
}
void inbyt (unsign char) /* 从看门狗存储器读出一字节 */
{
unsign int i,di;
j=0;
for(i=0;i<7;i++);
{
sck=1;
sck=0;
cy=so;
j=scl(j,1);
} /*从看门狗存储器读出一字节送入临时变量j*/
dat=j;
}
void wrenable () /* 置看门狗写使能*/
{
sck=0;
cs=0;
outbyt(06h); /*写使能指令06h */
cs=1;
sck=0;
}
void wrdisable () /* 置看门狗写禁止 */
{
sck=0;
cs=0;
outbyt(04h);
sck=0;
cs=1;
}
void wrregister () /* 写状态寄存器 */
{
sck=0;
cs=0;
dat=01h;
outbyt(dat);
outbyt(00h); /* 设定看门狗定时时间 */
sck=0;
cs=1;
delay(200);
}
void rdregister() /* 读看门狗状态寄存器 */
{
sck=0;
cs=0;
outbyt(05h);
inbyt(05h);
sck=0;
cs=1;
}
void wbyte() /* 看门狗存储器字节写入子程序 */
unsigned char comm;
sck=0;
cs=0;
comm=02h; /* 写指令 02h */
outbyt(comm);
outbyt(addrl);
outbyt(dat);
cs=1;
sck=0;
delay(150);
}
void rbyte() /*看门狗存储器字节读出子程序 */
unsigned char comm;
sck=0;
cs=0;
comm=03h;
outbyt(comm);
outbyt(addrl);
inbyt;
sck=0;
cs=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -