OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2374|回复: 6

跑裸机时,如何才能在不影响数据传输的情况下检测电压值并控制led等闪烁?

[复制链接]

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-4-23
在线时间
21 小时
发表于 2016-11-18 09:53:32 | 显示全部楼层 |阅读模式
跑裸机时,如何才能在不影响数据传输的情况下检测电压值并控制led等闪烁?@正点原子
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-11-18 09:56:06 | 显示全部楼层
楼主问的是非阻塞编程的一个简单例子,时间节拍+状态机扫描即可。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复 支持 1 反对 0

使用道具 举报

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-4-23
在线时间
21 小时
 楼主| 发表于 2016-11-18 10:10:20 | 显示全部楼层
东北小辉辉 发表于 2016-11-18 09:56
楼主问的是非阻塞编程的一个简单例子,时间节拍+状态机扫描即可。

能给个例子吗?我没做过这个
回复 支持 反对

使用道具 举报

17

主题

344

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1280
金钱
1280
注册时间
2013-12-14
在线时间
567 小时
发表于 2016-11-18 11:05:04 | 显示全部楼层
走下去 发表于 2016-11-18 10:10
能给个例子吗?我没做过这个

刚才干活去了,现在在公司,不太方便,大致给你说一下。
比如,你led要500ms闪烁,ADC采样10ms扫描一次,程序结构可以这样。
void main( void )
{
    if( CNT < 50 )
    {
        led翻转
        休眠
    }

    if( CNT >= 50 )
    {
        CNT = 0;
        ADC采样
        休眠
    }
}
ISR_10ms
{
    CNT++;
}
这里可以使用定时器唤醒单片机,平时休眠,每10ms唤醒一次,然后再次休眠。这样可以低功耗。
这就是事件触发的思想。CNT相当于一个消息,每个if是一个任务,注意每个if里执行的时间必须要短,必要的时候要将一个长时间的任务划分为几个状态。

大致是这样一个意思,可能有错误,楼主完善一下。
半导体->模拟电路->数字电路->单片机->汇编->C->操作系统->java
回复 支持 反对

使用道具 举报

1

主题

561

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1183
金钱
1183
注册时间
2015-5-28
在线时间
149 小时
发表于 2016-11-18 11:30:28 | 显示全部楼层
用操作系统吧,很好实现。好吧。。。裸机。。没看清~状态机吧
回复 支持 反对

使用道具 举报

12

主题

33

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2016-4-23
在线时间
21 小时
 楼主| 发表于 2016-11-18 15:24:17 | 显示全部楼层
小陀螺爱炒蛋 发表于 2016-11-18 11:30
用操作系统吧,很好实现。好吧。。。裸机。。没看清~状态机吧

内存不够
回复 支持 反对

使用道具 举报

69

主题

978

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3772
金钱
3772
注册时间
2015-4-26
在线时间
765 小时
发表于 2016-11-18 20:51:45 | 显示全部楼层
点亮个灯而已,这个真可以在中断里做。百分百实时
我有故事,你有酒吗
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-25 21:33

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表