滞回算法和ad灵敏度算法程序的工作总结

工作总结

正在做STM8S系列芯片的工作
工程建立
库文件的应用
主要判断ad口
ad判断的过程
配置ad
配置ad口
得到结果
其中需要知道的是,ad结果需要灵敏度判断程序如下:
主要应用场合STM8S系列

/*******************************************
函数名称: MachineContrl()
功    能: 外围控制程序
参    数: 无
返回值  : 无
********************************************/
void MachineContrl(void)
{
  unsigned int NewADdata;
  NewADdata=GetADdata();
  /*设置一定的值域范围,以防止继电器的来回抖动*/
  if(NewADdata>ADdata)
  {
		if(NewADdata-ADdata>SensityValue)//新采集的值超过设定的灵敏度
			ADdata=NewADdata;         //将新值赋给当前存储AD采集值的变量
		else
			ADdata=ADdata;            //当前值保持不变
  }
 
  else
  {
		if(ADdata-NewADdata>SensityValue)
			ADdata=NewADdata;
		else
			ADdata=ADdata;
  }

同时还有测温的类似一系列的过程:
网络上借鉴了好多程序
类似于滞回算法

void AD_12V_work()//12v工作
{
   if (AD_FLAG)//ad检测标志位
     {
       AD_FLAG = 0;//ad标志位清零
       AD_Work();//ad采集 
       ii++;
       ADVal_sum_C += ADVal;
       if(ii >= 10)
       {
         ii = 0;//寄存器清零
         ADVal_B = ADVal_sum_C/10;//ad值取平均值
         
       if((ADVal_B > 338) && (ADVal_last < 338)) 
                s12V_stop_flag = 1;//上升标志位置1
       if((ADVal_B < 423) && (ADVal_last > 423))
                s12V_work_flag = 1;//下降标志位置1

       if(ADVal_B < 338)//低于12V
         {      
              GPIO_WriteLow(GPIOD,GPIO_PIN_4);//红灯灭
              GPIO_WriteLow(GPIOC,GPIO_PIN_1);//风机工作
              s12V_work_flag = s12V_stop_flag = 0;//检测标志位清零
          } 
        
       else if(ADVal_B <= 423)//中间段
         {   
              if(s12V_stop_flag)//下降标志位
                  GPIO_WriteLow(GPIOD,GPIO_PIN_4);//红灯灭
                  GPIO_WriteLow(GPIOC,GPIO_PIN_1);//风机工作
              if(s12V_work_flag)//上升标志位
                  GPIO_WriteHigh(GPIOD,GPIO_PIN_4);//红灯亮
                  GPIO_WriteHigh(GPIOC,GPIO_PIN_1);//风机短路
         }        
       else //其他工作区间
         {       
                  GPIO_WriteHigh(GPIOD,GPIO_PIN_4);//红灯亮
                  GPIO_WriteHigh(GPIOC,GPIO_PIN_1);//风机短路  
                  s12V_work_flag = s12V_stop_flag = 0;//检测标志位清零
        }
         
       ADVal_last = ADVal_B;//更新备份值
       ADVal_sum_C = 0;//求和值清零
      }
     }
}

结束

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值