模拟信号量实现传感器的定时采集
来源:互联网 发布:php smarty 编辑:程序博客网 时间:2024/06/08 07:50
/*13点41分,2017年8月18日需求:传感器的采集频率可以设置,单位是秒。通过滴答定时器实现。 使用一个二值信号量。平台:stm32f042,无操作系统,模拟信号量。使用信号量实现两个线程的同步**/struct sensor{int sampl_frequen; /* 采样周期 */ int sampl_frequen_shdow; /* 采样周期的影子 */volatile uint16_t semaphore_frequen; /* 信号量,1:有资源,0没有资源 */int read_data; /* 温度值 */};/** 背景介绍: 将主函数里循环调用的函数理解为线程1 将滴答定时器中断函数理解为线程2. 初始化时没有资源,sensor1.semaphore_frequen = 0; sensor1.sampl_frequen = sensor1.sampl_frequen_shdow = 5;采样频率设置为 5s .**/void thread1_sensor(void){if(sensor1.init.semaphore_frequen == 1){ /* 消费者将资源取走 */ sensor1.init.semaphore_frequen = 0; /* 读温度值 */}else{goto out;}}void thread2_systick(void){static uint16_t time_ms = 0;if(time_ms>=1000){/* 生产者开始生产 */ if( sensor1.init.semaphore_frequen ==0 ){sensor1.init.sampl_frequen--;if(sensor1.init.sampl_frequen <= 0){/* 时间到了,生产者生产好了一个产品 */sensor1.init.semaphore_frequen = 1;sensor1.init.sampl_frequen = sensor1.init.sampl_frequen_shdow;}}}}
阅读全文
1 0
- 模拟信号量实现传感器的定时采集
- 定时任务模块,附带定时采集实现
- CC2530基础实验之采集模拟量传感器值
- PMODAD1 实现模拟数据的采集 实现篇1
- STM32 SHT10温湿度传感器的信号采集
- 传感器采集的数据有多重要
- PMODAD1 实现模拟数据的采集 硬件篇
- PMODAD1 实现模拟数据的采集 时序篇
- SensorSimulator进行传感器的模拟
- ucosII信号量---实现较快数据采集与较慢数据处理的同步
- android 传感器的实现
- Android_传感器的实现
- 信号量的实现
- Linux信号量的实现
- 信号量实现的机制
- 信号量的实现函数
- 信号量的实现
- 信号量函数的实现
- 开始记录开发中使用到的正则表达式
- 构建高可用的zookeeper 集群
- 全志R58平台调通s5k5eya(RAW+MIPI)(分色排版)
- python基础的学习
- 模块依赖关系分析-Java实现
- 模拟信号量实现传感器的定时采集
- 进军高校的共享厨房,能否焕发另一春?
- Xmind基础教程-思维导图结构
- 视频直播推流不成功如何排查
- 从Google Play下载应用并不安全,上千款监视软件伪装其中
- 全志R58平台的GPIO引脚控制(草稿)
- Nginx基本配置
- 重装 11G(11.2.0.4) OLAP组件
- ng中自定义服务及引用