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.测试

相关推荐
tryxr2 小时前
如何分析一个慢sql
数据库·sql·mysql·慢sql
泡海椒2 小时前
JQuickExcel 大文件排障与调优:从实际路径定位 OOM、临时盘和慢任务
开发语言·数据库·缓存·oracle·excel
Logic1012 小时前
C语言/数据结构字符串题解:统计“chhc“子串权值总和——一次遍历模式匹配
c语言·数据结构·算法·字符串·时间复杂度·空间复杂度·ascii
java_logo3 小时前
Docker 部署 MariaDB:轻松搭建开源关系型数据库
数据库·docker·容器·开源·mariadb·轩辕镜像·docker部署教程
tryxr3 小时前
什么情况下索引会失效
数据库·mysql·索引失效·索引
guo_wen_qiang3 小时前
redis持久化
数据库·redis·分布式
撸串-研究生3 小时前
社区流浪宠物领养救助系统【附源码】
mysql·springboot·宠物·社区公益服务
达梦数据3 小时前
达梦数据复制软件DMDRS搭建部署示例:源数据库DM8到目标数据库Kingbase V8一对一数据同步
数据库·oracle
半杯咖啡半行码3 小时前
STM32 时钟与定时器:从原理到实战
stm32·单片机·嵌入式硬件