**lz说湖南人好斗,

[复制链接]
97512|560
 楼主| wxj1952 发表于 2007-12-4 20:05 | 显示全部楼层

打擂的不多。

以往那么多吹牛的高手都不见了?
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分钟到
071
05
05
072
05
073
05
074
05
delayms(200);
05
delayms(500);
05

......


这样只能保证一分钟跑60次f05
71--74函数内部不被打断

对错无所谓,写字就有分,以前老师都这样!

不过声明下,俺是支持os的,特别是程序大了,任务多了的时候.
农民讲习所 发表于 2007-12-4 20:30 | 显示全部楼层

顶级菜鸟

 楼主| wxj1952 发表于 2007-12-4 20:35 | 显示全部楼层

消消气

怎么老有人说题目出的不合理,自相矛盾......其实管他那么多干吗?人家出了3000元,凭什么要给你出一个又合理又容易做的题,再一遍遍地给你解释题意,干脆告诉你答案,送你3000元?

   有本事抓住出题人的不合理,利用它的漏洞,让他输得没话可说,这才是真高手,真君子。
zhou7209 发表于 2007-12-4 20:35 | 显示全部楼层

呵呵

如果rom够大
那就一句一句写下去吧!
农民讲习所 发表于 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。

如果你是裸奔程序,可能不好管理了,请看我的裸奔程序,当然也不一定合理。
zhou7209 发表于 2007-12-4 20:57 | 显示全部楼层

俺是裸奔的

各个函数时间是严格限定的
这样的话 for 一下就可以按时间运行,只要晶镇准确
 楼主| wxj1952 发表于 2007-12-4 20:59 | 显示全部楼层

回所长

其实所长一看我贴的答案,马上就能猜出我的工作年龄。不过所长您是说话有威信的长者,对那些小男人的随地吐痰的行为应该制止一下。

还有1952是我家门牌号码,下次出差到上海,到淮海中路1950弄里W家来玩。
fengyeu 发表于 2007-12-4 21:02 | 显示全部楼层

===等待各大裸奔高手出招。。。。。。。

===等待各大裸奔高手出招。。。。。。。
zhou7209 发表于 2007-12-4 21:03 | 显示全部楼层

凑热闹

这两天要出差去上海
......
bird777 发表于 2007-12-4 21:07 | 显示全部楼层

楼主看看满意吧

 while(1){
     if(F1Sec){
       F1Sec = 0;
       SecCounter++;
         if(SecCounter > 59){
             SecCounter = 0;
             XXCounter = 0;
             F07();    
         }
         if(XXCounter == 2) F08();
         if(XXCounter == 4) F09();
         if(XXCounter == 6) F10();
         F05();
         XXCounter++;
     }    
 }

保证1分钟F05执行60次
保证1分钟F07-F10能全部执行,不打断.
如果这个是正解,如果允许F05被打断,楼主交代问题没有说清楚.

农民讲习所 发表于 2007-12-4 21:18 | 显示全部楼层

面试题?

老狼 发表于 2007-12-4 21:25 | 显示全部楼层

看来搂主对嵌入式还是不是很了解

所谓的任务时间限制,必须要讲最小的时间片,而最小的时间片,又是由CPU的指令速度决定的,所谓的不能打断,不是说不能响应硬件中断,而是需要关心硬件中断程序占用的时间,例如,ARM的速度是51的几十倍到几百倍,大么如果用来实现你的系统,误差肯定要比你用51的小得多,(说这句话估计有人要扔砖头了,这个道理就像AD转换一样,精度高了)你那个所谓的几百毫秒的任务,在执行的过程中完全可以完全去响中断,00以毫秒定义中断(这个中断只要执行的够快),在程序执行中你根本感觉不到这个过程中响应了中断,

如果你就是要咬文嚼字的话,那就用OMAP59xx 做吧,一半是海水,一半是火焰!双核的!

或者选折一款内部集成 RTC的 MCU, 
小嘿 发表于 2007-12-4 21:38 | 显示全部楼层

我提个白痴问题

既然F01~F04是顺序执行而且不可中断不可抢占,每个运行花费700ms,那这和一个2800ms的F14有什么区别??
老狼 发表于 2007-12-4 21:41 | 显示全部楼层

我一直没明白楼主的意思

OS 的调度,如何调度,OS是靠什么进行的调度?OS的系统时间从何而来?无非是两个,要么时钟芯片,要么定时中断!OS只不过多了一只看不见的黑手!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部