wxj1952
发表于 2007-12-4 20:05
打擂的不多。
以往那么多吹牛的高手都不见了?<br />
dld2
发表于 2007-12-4 20:07
楼上,你不配
tage
发表于 2007-12-4 20:11
我是菜鸟,没上过os
是不是在执行那4个700ms的函数时,只记丢了几秒。
甄蔡组合
发表于 2007-12-4 20:19
什么叫OS !!请高人解释
zhou7209
发表于 2007-12-4 20:20
考一下试
1分钟到<br />071<br />05<br />05<br />072<br />05<br />073<br />05<br />074<br />05<br />delayms(200);<br />05<br />delayms(500);<br />05<br /><br />......<br /><br /><br />这样只能保证一分钟跑60次f05<br />71--74函数内部不被打断<br /><br />对错无所谓,写字就有分,以前老师都这样!<br /><br />不过声明下,俺是支持os的,特别是程序大了,任务多了的时候.<br />
农民讲习所
发表于 2007-12-4 20:30
顶级菜鸟
wxj1952
发表于 2007-12-4 20:35
消消气
怎么老有人说题目出的不合理,自相矛盾......其实管他那么多干吗?人家出了3000元,凭什么要给你出一个又合理又容易做的题,再一遍遍地给你解释题意,干脆告诉你答案,送你3000元?<br /><br /> 有本事抓住出题人的不合理,利用它的漏洞,让他输得没话可说,这才是真高手,真君子。
zhou7209
发表于 2007-12-4 20:35
呵呵
如果rom够大<br />那就一句一句写下去吧!
农民讲习所
发表于 2007-12-4 20:41
LZ你老实说,你工作了多长时间?
tage
发表于 2007-12-4 20:43
感觉象脑筋急转弯
是不是那700ms的任务中调用(已经包含)了500ms那个任务。
wxj1952
发表于 2007-12-4 20:47
感谢zhou7209关注
写得挺好的,主要问题是,OS的调度器可能不好实现这样的调度。调度器是顺序上行调度的,也就是以当前任务号为起始,然后看下一个任务是否就绪,这样,F071执行完肯定调度F072....然后回到秒F05。<br /><br />如果你是裸奔程序,可能不好管理了,请看我的裸奔程序,当然也不一定合理。
zhou7209
发表于 2007-12-4 20:57
俺是裸奔的
各个函数时间是严格限定的<br />这样的话 for 一下就可以按时间运行,只要晶镇准确
wxj1952
发表于 2007-12-4 20:59
回所长
其实所长一看我贴的答案,马上就能猜出我的工作年龄。不过所长您是说话有威信的长者,对那些小男人的随地吐痰的行为应该制止一下。<br /><br />还有1952是我家门牌号码,下次出差到上海,到淮海中路1950弄里W家来玩。
fengyeu
发表于 2007-12-4 21:02
===等待各大裸奔高手出招。。。。。。。
===等待各大裸奔高手出招。。。。。。。
zhou7209
发表于 2007-12-4 21:03
凑热闹
这两天要出差去上海<br />......
bird777
发表于 2007-12-4 21:07
楼主看看满意吧
while(1){<br /> if(F1Sec){<br /> F1Sec = 0;<br /> SecCounter++;<br /> if(SecCounter > 59){<br /> SecCounter = 0;<br /> XXCounter = 0;<br /> F07(); <br /> }<br /> if(XXCounter == 2) F08();<br /> if(XXCounter == 4) F09();<br /> if(XXCounter == 6) F10();<br /> F05();<br /> XXCounter++;<br /> } <br /> }<br /><br />保证1分钟F05执行60次<br />保证1分钟F07-F10能全部执行,不打断.<br />如果这个是正解,如果允许F05被打断,楼主交代问题没有说清楚.<br /><br />
农民讲习所
发表于 2007-12-4 21:18
面试题?
老狼
发表于 2007-12-4 21:25
看来搂主对嵌入式还是不是很了解
所谓的任务时间限制,必须要讲最小的时间片,而最小的时间片,又是由CPU的指令速度决定的,所谓的不能打断,不是说不能响应硬件中断,而是需要关心硬件中断程序占用的时间,例如,ARM的速度是51的几十倍到几百倍,大么如果用来实现你的系统,误差肯定要比你用51的小得多,(说这句话估计有人要扔砖头了,这个道理就像AD转换一样,精度高了)你那个所谓的几百毫秒的任务,在执行的过程中完全可以完全去响中断,00以毫秒定义中断(这个中断只要执行的够快),在程序执行中你根本感觉不到这个过程中响应了中断,<br /><br />如果你就是要咬文嚼字的话,那就用OMAP59xx 做吧,一半是海水,一半是火焰!双核的!<br /><br />或者选折一款内部集成 RTC的 MCU,
小嘿
发表于 2007-12-4 21:38
我提个白痴问题
既然F01~F04是顺序执行而且不可中断不可抢占,每个运行花费700ms,那这和一个2800ms的F14有什么区别??
老狼
发表于 2007-12-4 21:41
我一直没明白楼主的意思
OS 的调度,如何调度,OS是靠什么进行的调度?OS的系统时间从何而来?无非是两个,要么时钟芯片,要么定时中断!OS只不过多了一只看不见的黑手!<br />