- 打卡等级:初来乍到
- 打卡总天数:2
- 最近打卡:2024-07-18 11:10:17
注册会员
- 积分
- 128
|
发表于 2024-7-18 16:22:56
|
显示全部楼层
用STC8G1k08—8PIN试验,主频11.0592MHz,串口波特率:115200。程序如下。ISP下载时,不选择“硬件自动启动看门狗”。
延时函数和串口输出函数,省略,ISP生成。
#include "STC8H.h" //包含了u8、u16、u32的定义
#include <intrins.h>
#include <delay_xms.h>
#include <uart.h>
//----主函数-----------------------------
void main(void)
{
u8 i;
Uart1_Init(); //串口初始化,11.0592MHz主频,115200波特率
SendASC(0x01); //复位后,串口输出0x01。
DelayXms(1000);
WDT_CONTR = 0x24; //使能看门狗,溢出时间约为1s。 语句1。
//WDT_CONTR = 0x34; //清除看门狗。 语句2。
while (1)
{
for (i=0;i<3;i++)
{
SendASC(0xff); //串口输出0xFF。
DelayXms(1000);
WDT_CONTR = 0x34; //清除看门狗
}
while(1); //语句3,不清除看门狗,复位。
}
}
串口输出信息,符合程序的要求。
[16:01:21.818]接收←01
[16:01:22.568]接收←FF
[16:01:23.308]接收←FF
[16:01:24.058]接收←FF
[16:01:26.048]接收←01
[16:01:26.798]接收←FF
[16:01:27.548]接收←FF
[16:01:28.298]接收←FF
[16:01:30.290]接收←01
[16:01:31.040]接收←FF
[16:01:31.790]接收←FF
[16:01:32.530]接收←FF
[16:01:34.530]接收←01
[16:01:35.280]接收←FF
如果,只是把上面程序的语句1、语句2修改如下:
//WDT_CONTR = 0x24; //使能看门狗,溢出时间约为1s。 语句1。
WDT_CONTR = 0x34; //清除看门狗。 语句2。
串口输出信息
[16:05:12.259]接收←01
[16:05:13.009]接收←FF
[16:05:13.759]接收←FF
[16:05:14.499]接收←FF
[16:05:16.499]接收←01
[16:05:17.249]接收←FF
[16:05:17.989]接收←FF
[16:05:18.738]接收←FF
[16:05:20.739]接收←01
[16:05:21.479]接收←FF
[16:05:22.229]接收←FF
[16:05:22.979]接收←FF
[16:05:24.969]接收←01
[16:05:25.719]接收←FF
[16:05:26.469]接收←FF
[16:05:27.219]接收←FF
[16:05:29.209]接收←01
输出的信息,在时间间隔上没有任何区别。
把语句1、语句2全部注释,如下:
//----主函数-----------------------------
void main(void)
{
u8 i;
Uart1_Init(); //串口初始化,11.0592MHz主频,115200波特率
SendASC(0x01); //复位后,串口输出0x01。
DelayXms(1000);
//WDT_CONTR = 0x24; //使能看门狗,溢出时间约为1s。 语句1。
//WDT_CONTR = 0x34; //清除看门狗。 语句2。
while (1)
{
for (i=0;i<3;i++)
{
SendASC(0xff); //串口输出0xFF。
DelayXms(1000);
WDT_CONTR = 0x34; //清除看门狗
}
while(1); //语句3,不清除看门狗,复位。
}
}
串口输出信息
[16:07:37.955]接收←01
[16:07:38.704]接收←FF
[16:07:39.444]接收←FF
[16:07:40.194]接收←FF
[16:07:42.195]接收←01
[16:07:42.934]接收←FF
[16:07:43.685]接收←FF
[16:07:44.435]接收←FF
[16:07:46.424]接收←01
[16:07:47.175]接收←FF
[16:07:47.925]接收←FF
[16:07:48.674]接收←FF
[16:07:50.665]接收←01
[16:07:51.414]接收←FF
[16:07:52.164]接收←FF
[16:07:52.905]接收←FF
[16:07:54.904]接收←01
[16:07:55.644]接收←FF
[16:07:56.394]接收←FF
输出的信息,在时间间隔上,也没有任何区别。
这样看,3种写法,不是都一样的效果?
|
|