51单片机电力载波应用开发(九)51产品化

1.感应边沿信号检测与触发发送

cpp 复制代码
if(edge.up==TRUE)
		{
			_nop_();
			cmd1[33]='A';
			cmd1[34]='A';
			cmd2[33]='A';
			cmd2[34]='A';
			Uart2_SendString(cmd1);
		  for(i=0;i<10000;i++);
		  Uart2_SendString(cmd2);
			edge.up=FALSE;
      }
		if(edge.down==TRUE)
		{
     _nop_();
			cmd1[33]='5';
			cmd1[34]='5';
			cmd2[33]='5';
			cmd2[34]='5';
		 Uart2_SendString(cmd1);
		 for(i=0;i<10000;i++);
		 Uart2_SendString(cmd2);
     edge.down=FALSE;
      }

2.添加看门狗

cpp 复制代码
/***********************************************
函数名称:WachDogInit
功    能:看门狗初始化函数
入口参数:无
返 回 值:无	
备    注:无
************************************************/
void WatchDogInit(void)
{
	ClrBits(WDT_CONTR,Bits_ALL);
	SetBits(WDT_CONTR,EN_WDT|CLR_WDT|IDLE_WDT);
	SetBits(WDT_CONTR,PS_2|PS_1);	
  // 0011,1110 EN_WDT = 1,CLR_WDT = 1,IDLE_WDT = 1,PS2 = 1,PS1 = 1,PS0 = 0 
  // EN_WDT = 1:启动看门狗定时器
  // CLR_WDT = 1:看门狗将重新计数
  // IDLE_WDT = 1:,看门狗定时器在"空闲模式"计数
  // PS2 = 1,PS1 = 1,PS0 = 0:定时4.5511 S	 @f=11.0592MHz	
}
/***********************************************
函数名称:WachDogClear
功    能:清除看门狗函数
入口参数:无
返 回 值:无	
备    注:无
************************************************/
void WatchDogClear(void)
{
	SetBits(WDT_CONTR,CLR_WDT);
	// CLR_WDT = 1:看门狗将重新计数
}
 

3.编译烧写

4.测试

相关推荐
w-w0w-w2 小时前
SQL注入
网络·数据库·sql
tianyuanwo2 小时前
NetBox 数据库详解:当“关系型数据库”被装进一个网络运维的领域模型里
运维·数据库·netbox
一条泥憨鱼3 小时前
【计算机网络】短连接、长连接与连接池:从 TCP 握手到池化复用的完整链路
网络·数据库·网络协议·tcp/ip·计算机网络
IvorySQL3 小时前
深入 PostgreSQL WAL:从崩溃恢复到逻辑复制
数据库·postgresql
蹊黎4 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
幽灵诶4 小时前
Mysql(基于测试的学习)
数据库·mysql
砚底藏山河4 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
宇宙无敌暴龙战士6665 小时前
MySQL 8 库表操作学习笔记:SQL 基础、库表管理、约束与用户授权全流程
数据库·sql·mysql·学习笔记·后端开发
猿究院_夏燊5 小时前
MySQL 的四种隔离级别
java·数据库·mysql
say_fall5 小时前
【Linux系统编程】Ext 文件系统:磁盘与存储、文件与目录、现代计算机究竟如何寻找文件
linux·运维·服务器·数据库·c++