打印

只能用经典来形容这篇**了

[复制链接]
楼主: IceAge
手机看帖
扫描二维码
随时随地手机跟帖
61
maaaaa| | 2008-8-16 09:07 | 只看该作者 回帖奖励 |倒序浏览

顶一下

虽然我的观点和楼主不同,我支持能在主程序做的绝不用中断。例如按键去抖就用主程序周期,反正去抖有50%甚至更大的偏差都没关系。

不过还是支持一下楼主原创。

使用特权

评论回复
62
muslimsali| | 2008-8-18 10:18 | 只看该作者

做法和 15楼 forthlab 相似

使用特权

评论回复
63
jihuqing| | 2008-8-21 08:44 | 只看该作者

想法不错.

想法不错.

使用特权

评论回复
64
cooperate| | 2008-8-21 15:07 | 只看该作者

学习中

    还是比较赞成所长的简约中断

使用特权

评论回复
65
lybwell| | 2008-8-23 09:00 | 只看该作者

板凳

板凳

使用特权

评论回复
66
cly1005| | 2008-8-23 11:43 | 只看该作者

----学习了----

好像有处笔误 const FUNCTIONPTR[] tasks = {
const FUNCTIONPTR tasks[]={

使用特权

评论回复
67
郑成功了| | 2008-8-26 14:58 | 只看该作者

不理解

不好理解,个人感觉:
时序的主次将完全颠倒;
而且系统可能变得很复杂;
是否放在中断中CPU运行的时间基本一样,低功耗从何而来?
主程序往往耗时都很长,时序岂不是要大乱?
中断中多安排一些例行性的动作,如显示,读健,发声等,这个是提倡的,但整个主程序搬过来,实在看不出什么好处。

使用特权

评论回复
68
sheenhero| | 2008-8-28 19:07 | 只看该作者

学习。。。

使用特权

评论回复
69
张明峰| | 2008-9-2 22:27 | 只看该作者

赞同hotpower的“裸奔”论

楼主实在是把一件简单的事情复杂化了。如果能合理应用“状态机”的概念,所谓的多任务处理就能轻松实现。

使用特权

评论回复
70
gengxuetao| | 2008-9-3 12:53 | 只看该作者

学习中

不错,努力学习中

使用特权

评论回复
71
ycx0617| | 2008-9-3 14:58 | 只看该作者

使用性好像不广

   这样能保证时钟的准确?你能保证中断里的任务能在这么短的时间内完成?假如你用了液晶,有刷写液晶任务,他所耗用的时间早已经够定时器中段多次了。用这种方式,只能是任务少,且耗时短。
   假如使用了ps2接口,而此时正在定时器中断中处理任务,当ps2设备有请求时,无法响应,应此会错过这个响应。此类对响应要求苛刻的设备在这种系统中会很不可靠。

使用特权

评论回复
72
夏虫| | 2008-9-3 17:27 | 只看该作者

为LZ的精神加油

虽然做过多年的单片机程序,还没有想过原来可以这样做,呵呵。。。
就像习惯了右手,却忽视了左手也可以做一些事情,建议大家学习LZ变相思考的做法,没准能想出更好的办法

与诸君共勉

使用特权

评论回复
73
lybwell| | 2008-9-3 23:45 | 只看该作者

记号

记号

使用特权

评论回复
74
ayb_ice| | 2008-9-4 09:48 | 只看该作者

中断不宜做太多的事情肯定是对的

只是很多具体的情况是任务不多不复杂,这时所有任务都可以在中断中完成。。。

使用特权

评论回复
75
laden| | 2008-9-4 20:53 | 只看该作者

不错,有内涵。

使用特权

评论回复
76
疯子8972| | 2008-9-8 11:17 | 只看该作者

觉得不怎么样

感觉不是个很好的一个构架
当然了,比没有构架好

使用特权

评论回复
77
lsfsxfljj| | 2008-9-8 16:46 | 只看该作者

偶也是这么做的,就是有的观点不敢苟同

偶也是这么做的,就是有的观点不敢苟同,个人认为,一个时间片已经足够程序执行了,想想12M晶振,平均每条语句算他2us,10ms一个时间片,可以执行5000条语句,在状态机的情况下并不是每条语句都执行到的,一般的项目一个状态执行不可能5000条语句,好!执行完 跳出我可以让它休眠,降低耗电,更重要的是增加的抗干扰性!偶觉得开门狗拉回来没用,如果开门狗溢出,重启,需要利用状态机来返回,返回到原来执行的状态

使用特权

评论回复
78
hch| | 2008-9-8 20:21 | 只看该作者

本来单片机资源就少

应用的场合要求实时性高,用个状态机机制好点。事件驱动,我不认为中断内做太多的动作 ,一般在中断做个时间标志 或者处理一些响应程度高的动作。没有必要复杂化

使用特权

评论回复
79
汽车电子| | 2008-9-9 15:29 | 只看该作者

不提倡这种方法

   中断程序应该做尽可能少的事情。

前后台系统中,我喜欢这样。

void       main(void)
{
while(1)
{
     Sleep();
     SystemCounter++;
     switch(status)
     {
         // 各个任务......
     }

}

使用特权

评论回复
80
chen_zn| | 2008-9-10 13:57 | 只看该作者

走路向后看

学习了。多谢LS

使用特权

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

本版积分规则