0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

传感器中使用fsm的方法

电子设计 来源:电子设计 作者:电子设计 2022-02-17 11:16 次阅读

原文:https://www.cnblogs.com/CodeWorkerLiMing/p/12501934.html

单片机裸机的编程方法中,状态机的方法是比较好的,经典的比如按键的检测判断等。

其实有很多地方可以使用这种思想。比如传感器的数据采集,因为单片机不可能一直等待着运行,那样的效率是很低的,通常都是结合fsm + timer的方式来提高CPU的使用率。

传感器中使用fsm的方法

大家都知道,ds18b20的采集是比较慢的,发送转换指令后,最慢需要等待720ms,这个时间有点太长了。简直不能忍受。

如下所示:我采用了11bit分辨率,0.125的分辨率足够了,作为温度参考而已。

9 - bit resolution 93.75 ms 0.5
10 - bit resolution 187.50.25
11 - bit resolution 3750.125
12 - bit resolution 7500.0625
那么我肯定不是死等的,死等,多浪费cpu,效率太低了,实际工作中根本无法接受。

因此,做了一个状态机:

int main(int argc, char const *argv[])
{
while(1)
{
ds18b20_discope();
}
return0;
}
void ds18b20_discope(void)
{
switch (ds18b20的状态机的全局变量)
{
case 发送命令:
发送转换命令
赋值到等待装态
break;
case 等待装态:
判断是否有超时,
如果有超时,则:读取,计数器清零,并回到发送命令状态
否则,do nothing
break;
default:
break;
}
}

定时器的基准中断可以自己细化,我是50ms一个中断:

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
如果ds18b20已经处于等待状态,
则计数++
}

这样就是一个简单的传感器定时采样的状态机思路,不会死等,效率较高,而且稳定。

注意ds18b20的时序性比较严格,网上说不能被打断的,但是后来移植到freertos中,也是可以的,温度采样还算稳定,但是考虑到后续程序比较大,因此还是裸机了,状态机的思路基本能解决。

审核编辑:何安

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6032

    文章

    44513

    浏览量

    632807
  • 状态机
    +关注

    关注

    2

    文章

    492

    浏览量

    27471
收藏 人收藏

    评论

    相关推荐

    PNP传感器接继电器的方法

    PNP传感器接继电器的方法是一个涉及电子电路连接的技术过程,它要求精确地将PNP传感器的输出信号与继电器的控制端相连,以实现信号的转换和放大。以下将详细介绍PNP传感器接继电器的步骤和
    的头像 发表于 09-13 17:24 575次阅读

    在汽车 HMI 应用中使用霍尔效应传感器和电感式传感器应用说明

    电子发烧友网站提供《在汽车 HMI 应用中使用霍尔效应传感器和电感式传感器应用说明.pdf》资料免费下载
    发表于 09-11 10:22 0次下载
    在汽车 HMI 应用<b class='flag-5'>中使</b>用霍尔效应<b class='flag-5'>传感器</b>和电感式<b class='flag-5'>传感器</b>应用说明

    土壤监测传感器的使用方法

    土壤监测传感器是用于监测土壤湿度、温度、pH值、电导率、有机质含量等参数的设备,对于农业生产、环境监测和科学研究等领域具有重要意义。 土壤监测传感器使用方法 1. 了解土壤监测传感器的类型 在
    的头像 发表于 09-10 14:34 277次阅读

    使用位置传感器输出数据的角度计算方法

    电子发烧友网站提供《使用位置传感器输出数据的角度计算方法.pdf》资料免费下载
    发表于 08-30 10:37 0次下载
    使用位置<b class='flag-5'>传感器</b>输出数据的角度计算<b class='flag-5'>方法</b>

    温度传感器的常见故障及处理方法

    温度传感器是工业和日常生活中非常重要的设备,用于测量和监控温度。以下是一些常见的温度传感器故障及其处理方法传感器读数不准确 : 原因 :可能是由于
    的头像 发表于 06-20 09:11 2884次阅读

    温度传感器怎么测好坏_温度传感器的测量方法是什么

    温度传感器是测量温度的仪器,广泛应用于工业、科研、医疗等领域。本文将详细介绍温度传感器的测量方法和判断好坏的标准。 一、温度传感器的分类 热电偶:利用两种不同金属或合金的接触点产生热电
    的头像 发表于 06-19 14:54 2968次阅读

    PLC与传感器的接线方法

    、可靠地传输到PLC,直接影响到整个自动化系统的性能和稳定性。本文将详细介绍PLC与传感器的接线方法,包括接线前的准备工作、接线步骤、注意事项以及常见问题的解决方法
    的头像 发表于 06-07 14:06 929次阅读

    关于哪些传感器嵌入式功能适用于我的应用?

    意法半导体传感器采用FSM模型,并引入了自适应自配置 (ASC) 功能。这意味着,可以利用FSM中断来触发器件设置更改(包括ODR、FS、BW、功率模式和FIFO),因此MCU可以保持睡眠模式。
    发表于 05-03 09:57 152次阅读

    大气监测应用中的传感器

    根据检测方法的不同, 传感器可分为光学传感器、 电化学传感器等;根据反应原理的不同, 传感器可分为酶生物
    发表于 03-25 13:55 347次阅读

    振动传感器如何选择?测试方法有哪些?

    振动传感器如何选择?测试方法有哪些? 振动传感器是一种能够感知和测量物体振动或震动的设备,广泛应用于工业、机械、建筑、航空航天等领域。选择适合的振动传感器对于确保可靠的振动监测和故障诊
    的头像 发表于 03-05 15:48 1378次阅读

    如何校准ph传感器 pH传感器的校准方法

    如何校准ph传感器 pH传感器的校准方法  校准pH传感器是确保其准确性和可靠性的重要步骤。 第一部分:pH传感器的工作原理和重要性 pH
    的头像 发表于 02-18 11:33 1927次阅读

    温湿度传感器工作原理 温湿度传感器的接线方法

    温湿度传感器是一种用于测量环境温度和相对湿度的装置。它通常用于工业、农业、气象、室内空调等领域。本文将详细介绍温湿度传感器的工作原理和接线方法。 一、温湿度传感器的工作原理 温湿度
    的头像 发表于 02-14 18:00 8907次阅读

    液位传感器的接线方法及工作原理

    液位传感器是一种用于测量容器内液体水平的装置。它广泛应用于各种工业领域,如化工、石油、食品加工、水处理等。接下来将详尽地介绍液位传感器的接线方法和工作原理。 一、液位传感器的接线
    的头像 发表于 01-15 16:10 5335次阅读

    IGBT温度传感器异常的原因以及解决方法

    电磁加热IGBT温度传感器异常解决方法  电磁加热是一种常见的加热设备,通过电磁感应产生的磁感应力使炉内的金属材料发热。然而,在使用过程中,有时候会出现IGBT温度
    的头像 发表于 12-19 14:10 2018次阅读

    拉压力传感器的工作原理介绍 拉压力传感器的安装方法注意事项

    拉压力传感器的工作原理介绍 拉压力传感器的安装方法注意事项  拉压力传感器是一种用于测量物体受力情况的传感器。它能够将物体施加的拉力或压力转
    的头像 发表于 12-18 15:35 3329次阅读