打印

单片机多任务时的思想

[复制链接]
楼主: yx331447791
手机看帖
扫描二维码
随时随地手机跟帖
21
jack_shine| | 2010-10-11 12:59 | 只看该作者 回帖奖励 |倒序浏览
:)

使用特权

评论回复
22
老鱼探戈| | 2010-10-11 13:01 | 只看该作者
一句话:尽量不要占用CPU时间。

初学的时候很多人会用delay来等待延时,最常见的就是延时消抖了。
如果你设定系统时间标志位,一般64ms检测一次按键,这样不用延时消抖也不会占用CPU时间了。

使用特权

评论回复
23
peigang| | 2010-10-11 13:23 | 只看该作者
定时器中断1个(读数据DS1302,DS18B20最好1s)
主函数不断显示

使用特权

评论回复
24
jack_shine| | 2010-10-11 13:25 | 只看该作者
:)

使用特权

评论回复
25
lzlz70707| | 2010-10-11 13:35 | 只看该作者
路过

使用特权

评论回复
26
SLEET1986| | 2010-10-11 13:44 | 只看该作者
有这样的想法很不错,然后去网上找相关资料先自己琢磨一下,然后在碰到某一方面的问题再去解决。

使用特权

评论回复
27
yx331447791|  楼主 | 2010-10-11 15:00 | 只看该作者
在LED显示屏过程中的时候,需要刷新速度达到100HZ,对于51单片机来说,huangqi412说的方法实现还是有一定的差距的

使用特权

评论回复
28
yx331447791|  楼主 | 2010-10-11 16:13 | 只看该作者
在读温度和读时间的过程中,屏会出现比较抖动。

使用特权

评论回复
29
ic139| | 2010-10-11 17:40 | 只看该作者
不错。。 学习了

使用特权

评论回复
30
刘前辈| | 2010-10-11 17:46 | 只看该作者
本帖最后由 刘前辈 于 2010-10-11 17:49 编辑

很简单的事:一共才2个任务:

任务1、DS18B20;
任务2、DS1302;

RTOS节拍设定为 1 / 16秒,每节拍中断ISR内刷新显示屏;没个抖动的。

2个任务代码LZ你已经写好了,独立出来,搭个积木就行了。

使用特权

评论回复
31
ocon| | 2010-10-11 17:57 | 只看该作者
好的编程思想只能改善你的程序运行效率,再好的思想也不能让CPU变快,当软件满足不了需求,只能用硬件来弥补了。

使用特权

评论回复
32
yx331447791|  楼主 | 2010-10-11 22:25 | 只看该作者
用硬件??  换mcu吗?

使用特权

评论回复
33
ocon| | 2010-10-12 12:17 | 只看该作者
18B20只有一根信号线,对读写时序要求比较严格,如果读到一半跑去中断里刷屏可能会读失败,所以网上的18B20例程都要求读的时候关中断,你可以测试一下,在刷屏中断里改写完数据马上出来,中断里不要做任何延时,如果这样都读失败,只能换单片机或者超频了。

使用特权

评论回复
34
雪山飞狐D| | 2010-10-12 12:21 | 只看该作者
《MSP430系列单片机系统工程设计与实践 》  《时间触发嵌入式》:lol

使用特权

评论回复
35
yx331447791|  楼主 | 2010-10-12 17:58 | 只看该作者
看来我真的得换mcu了

使用特权

评论回复
36
刘前辈| | 2010-10-12 18:50 | 只看该作者
33楼真是误导LZ。35楼即使换了飞快的MCU,33楼的问题还是存在,——18B20的读写时序是外设特征时间,与MCU速率无关!

一个18B20读写时间(不是转换时间)需要50ms(或者1/16 秒)或者100ms (丢失一次显示刷新,不至于闪烁吧)吗?

如果这个时间必须是原子性的,必须严格时序到100us 误差之内(可能么?又是需要50ms慢速等待,又是需要100us精度。)那就只好用2个CPU 啦。

书上现成的例子,没那么复杂。

使用特权

评论回复
37
c+++| | 2010-10-12 20:53 | 只看该作者
楼上还自称前辈, 懂不懂技术啊?
关闭中断是为了不干扰 18B20 读写, 与 100ms 有什么关系? 这样的系统, 而且还是 8051, 还推荐什么 rtos, 到底做过技术没有?  

7 楼已经说了: '状态机','MCU软件设计','事件驱动', 这才是技术要点。 使用定时中断, 中断里去做各种操作, 用状态机方式划分分时复用的操作状态。 记住“分时“ 二字!

使用特权

评论回复
38
刘前辈| | 2010-10-13 09:42 | 只看该作者
本帖最后由 刘前辈 于 2010-10-13 10:00 编辑

哈,前辈与c+++年龄相当,是机械专业的。所以不可能对MCU有多么深入的研究。只能利用工具进行控制器开发。

RTOS是一种工具,是给菜鸟用的,菜鸟借助RTOS,就能完成高手相当的作品(系统)。

正如一台高级数码相机,咱前辈老人拿在手里是“傻瓜”相机,但是拍出照片来胜似专业摄影师。——因为相机里面有一个高级OS帮我。

再如:现在市场上有电脑克隆出来的世界名画,经专家甚至借助机器扫描鉴定,无法辨出真伪。——像我们这样没有天才细胞的菜鸟,是去学电脑克隆软件操作,还是学绘画技术用画笔模拟克隆毕加索?!

前辈和LZ属于菜鸟前者,知道利用天才大师做的先进工具,最终2天时间就能完成克隆毕加索大师级作品;而37楼水平虽高,利用自己一辈子磨练的8级工匠手工技术,一会儿学吴冠中,一会儿又改学毕加索,画了半辈子,还是不伦不类。——英雄一生,壮志未酬,半辈子过去,已经不可能再有所发展,被信息时代淘汰了。

状态机、事件驱动,这都什么年代的技术?说80年代不算早吧。——早就都包含在RTOS设计思想里了。现在还有人学?新华书店里这样书都不好找啦,满眼都是嵌入式RTOS。

哈,咱也敬佩37楼,80年代的精英;不过比较起来,现代技术:前辈我是利用工具进行设计,37楼是自己制造工具,然后自己设计。显而易见,当然c+++水平高,他有完全的资格说“这论坛上能让我正眼相看的人还没出现……”;可惜最后,我们都站到了巨人的肩膀上,而那些从不肯向别人学习的人,还在巨人的脚下制造工具……。
       一个人一辈子只有100年,再有才能也完不成巨人的一只脚。
        这就是差别——眼光。

使用特权

评论回复
39
c+++| | 2010-10-13 10:33 | 只看该作者
楼上刘钱贝好像是那个被称作论坛败类的wxj5952的马甲吧? 想单挑人家 highgear, 结果逃之夭夭了, 是你吧?
就你那点水平, 还巨人肩膀, 脸皮真厚。

使用特权

评论回复
40
刘前辈| | 2010-10-13 13:47 | 只看该作者
本帖最后由 刘前辈 于 2010-10-13 14:20 编辑

C+++看不懂中文?38楼咱刘某人今年54岁,是一个机械专业的真正的单片机超级菜鸟这句话说了800遍了,咱承认自己愿意跪拜这论坛上任何人为老师,论水平是根本谈不上啦。C+++还在这娘们似地唠叨自己水平如何比俺老刘高?

看起来,C+++这种highgear的马甲之类的水平也就敢和我老刘这样机械专业的超级菜鸟相提并论,并以此为快啦?——“哼!就这水平,还敢和咱 highgear比?咱一个‘授之于渔’教材贴就够你喝一壶的。”——啊?俺刘前辈水平论坛第一差,咱 highgear 大师怎么说也是老二呀。就那么喜欢和论坛第一差比较谁的水平高?

     这种冷漠老师笔下的精神病人,被1952一个帖子赶出论坛,3年忧郁成心病了。看着谁都像1952,都赶着追杀。典型的精神病状。结果如今连个wxj 的名字都写不好了,更象是病入膏肓了。早就建议你看心理医生,可是任何精神病人都不会承认自己有病,就像醉鬼总是“我没醉,我还能喝……”一样。
      所长如今还是爱和小辈水平比较——总喜欢“授人与渔”先把自己放在大师的位置到这边来教育菜鸟以满足精神需要?“没有100贴我就不开讲……”——大师犯什么毛病呢,到底想不想讲那边自己开的帖子100多贴了,怎么还不开讲,又跑这边菜鸟群里混来了?
         
         老刘今天选你为菜鸟帮主,以后就再也不用担心和手下哪个菜鸟比较谁的水平高啦?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则