|
楼主 |
发表于 2010-10-26 23:31:20
|
显示全部楼层
对!正为这事头疼,时标太短的话,占用cpu的资源太多,根本就不能干别的事了,但是在书的第17章里,提到的混合式调度器里说:允许调度一个抢占式任务,原本以为可以通过第二个中断解决问题,可是仔细一看相关代码却发现:原来在main函数中添加了一个抢占式任务,而非不可控的外来信号,所以怀疑书中介绍的方法大概只能适用于可预测状态的运行,对于突发的,无规律的信号输入则无能为力,不知是否为这种方法的缺陷?
如果用任务方式来测量红外信号,时标必须小于1ms,要不然就不能正确测量最小脉宽了,我发问的目的就是想问一下有没有除了中断以外更好的方法,其实还是非常喜欢这种用合作式调度器工作的方法,它在解决复杂问题时能够提供相当便捷的方案,而不用"总是重新发明轮子".
我在以前的方案中用的是常见的超级循环的方式,意识到这种方法确实对一些要求严格的商业设计不适用,特别是调整参数时,真是牵一发而动全身,自从看到本论坛上介绍的这本书后才如梦初醒,然后有查寻了别人关于红外解码的相关源代码后发现:大都采用中断,或查询的方法(其实程序就是在那里傻等),相对一个真正好的程序来说差的太远,由此可以看出真正的高手都是隐而不现的,看见的大都是初学者的作品,原谅我说的这么直接,如有冒犯请多多包含!!
还有就是:在高端的处理器中,或者在操作系统中是怎样完成红外解码的?如果没人回答的话就需要进一步学习了! |
|