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中,也是可以的,温度采样还算稳定,但是考虑到后续程序比较大,因此还是裸机了,状态机的思路基本能解决。

审核编辑:何安

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

    关注

    6036

    文章

    44557

    浏览量

    635118
  • 状态机
    +关注

    关注

    2

    文章

    492

    浏览量

    27538
收藏 人收藏

    评论

    相关推荐

    PLC数据采集模块与传感器连接方法

    PLC数据采集模块与传感器的连接方法主要取决于传感器的类型和输出信号。以下是一个连接指南: 一、了解传感器类型与输出信号 传感器类型 :常见
    的头像 发表于 11-26 13:38 418次阅读

    PNP传感器接继电器的方法

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

    在汽车 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 370次阅读

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

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

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

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

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

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

    水位传感器怎么测好坏

    水位传感器是一种检测水位变化的传感器,广泛应用于工业、农业、城市供水等领域。本文将详细介绍水位传感器的工作原理、类型、性能指标、安装方法以及如何检测水位
    的头像 发表于 06-19 10:38 1677次阅读

    PLC与传感器的接线方法

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

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

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

    大气监测应用中的传感器

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

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

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

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

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

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

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

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

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