UP8楼!但是:**这楼这么高了,我还是删了吧,

[复制链接]
27073|154
程序匠人 发表于 2007-6-19 22:01 | 显示全部楼层

又一座摩天大楼拔地而起

bingerbuku 发表于 2007-6-20 08:54 | 显示全部楼层

lz真是不够意思 我帮你建楼 你都不谢谢我 不投你 嘿嘿~~

zhangf1982 发表于 2007-6-21 08:35 | 显示全部楼层

呵呵。怎么好楼层都被占领啦

judge 发表于 2007-6-21 09:05 | 显示全部楼层

好几年没这么热闹过了.

农民讲习所 发表于 2007-6-21 09:22 | 显示全部楼层

90楼,我的看法

void T0()
{   
    简单提醒一下,当某一时间点任务最繁重时,运行时间可能会超出你的基本时钟,这时直接赋1就不合适了。不过你的100ms似乎一般情况下不成问题。
    flag_100ms = 1;    
}
2,在主程序中做一个函数,用来更新时间
void Updata(void)
{
   if (flag_100ms)
   {
         注意:如果在这里来了T0中断,呵呵,那么这个中断就白来了。
         所以不管是字节型还是整型都可能出问题,只是整型的几率更高而已。
         flag_100ms = 0;
         ms_counter++;
        //其他时间更新
   }
}

这样细节上楼主说的不错,但从宏观上,从另外一个角度来看,这个方法是非常好的。这也是俺一直提的"时间模糊性"。
就上面问题举个例子,中断丢失(重复触发了flag_100ms),只相当触发时刻被延后了100ms,这个100ms时间绝大多数的情况下是允许的:比如闪烁LED、报警时间、控制IO的延时。从这些情况来说,时间控制具有模糊性,不需要精确的时刻控制。
和WINDOW的TIMER事件触发一模一样,它是可以重复触发或丢失个别的,但总体时间可以大概保证。

gtw 发表于 2007-6-21 12:52 | 显示全部楼层

纯粹从不需要严格控制时间的角度上,确是没问题。

各人根据实际情况处理,可不一概而论,^_^
mannerfh 发表于 2007-6-21 15:55 | 显示全部楼层

8,19楼

楼主的这种情况我也遇到过,最初的解决方法也是关中断再开中断,
后来对语言越来越熟,就采用了加FALG的方法,

这些问题我从来没有放在一起想过,今天看到我深有体会啊,谢谢楼主,还有8,19楼的朋友! 
灌水潭 发表于 2007-6-21 16:34 | 显示全部楼层

几天没来,一座大厦拔地而起啊!!!

一朝成名 发表于 2007-6-21 21:27 | 显示全部楼层

留个姓名

万一那天谁一高兴收我做个弟子啥的

嘿嘿  俺无师自通(苦笑)
yddoo 发表于 2007-6-22 16:19 | 显示全部楼层

UP8楼!但是:**这楼这么高了,我还是删了吧,

gyt 发表于 2007-6-23 09:07 | 显示全部楼层

向领先者致敬!

忘情天书 发表于 2007-6-25 15:23 | 显示全部楼层

用操作系统的思路解决应该可以

同意maychang师兄,我去投丫一票,不过有点为难,其他几位都不错。
hqgboy 发表于 2007-6-25 15:42 | 显示全部楼层

顶...好铁.

zhangf1982 发表于 2007-6-26 08:05 | 显示全部楼层

顶。。。。。。

 楼主| 救火车 发表于 2007-6-27 08:45 | 显示全部楼层

谢谢大家

 楼主| 救火车 发表于 2007-6-27 10:49 | 显示全部楼层

我自己抢到了119楼。

甄蔡组合 发表于 2007-6-27 13:14 | 显示全部楼层

学习中

救火车的问题我在编程中就遇到过,但我只有养狗 过一段时间复位一次。
投一票
fpga2006 发表于 2007-6-27 15:47 | 显示全部楼层

投你1票

gyt 发表于 2007-6-28 07:16 | 显示全部楼层

预祝第二轮胜出:)

程序匠人 发表于 2007-6-28 08:23 | 显示全部楼层

救火车 不必参加第二轮复选,直接晋级到第三轮的决选

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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