定时器能放在子程序中作延时时间调用不

[复制链接]
4332|20
 楼主| gongche 发表于 2010-7-31 18:11 | 显示全部楼层 |阅读模式
宋倩2010 发表于 2010-7-31 18:12 | 显示全部楼层
有想法,哈哈
 楼主| gongche 发表于 2010-7-31 18:14 | 显示全部楼层
如果这样用的话,什么时候开始计时?
宋倩2010 发表于 2010-7-31 18:14 | 显示全部楼层
你想在程序中调用中断程序?
huanghuac 发表于 2010-7-31 18:15 | 显示全部楼层
一般用法是在定时器中断中设置标志位,在主程序中判断标志位,这样来使用。
 楼主| gongche 发表于 2010-7-31 18:15 | 显示全部楼层
你想在程序中调用中断程序?
宋倩2010 发表于 2010-7-31 18:14
我想来回调用它,呵呵
 楼主| gongche 发表于 2010-7-31 18:16 | 显示全部楼层
如果按照你说的,在一个输出开始计时的话是不是还要打开定时器中断?
宋倩2010 发表于 2010-7-31 18:16 | 显示全部楼层
 楼主| gongche 发表于 2010-7-31 18:19 | 显示全部楼层
就是说打开了定时器中断时系统就开始计时了?
宋倩2010 发表于 2010-7-31 18:20 | 显示全部楼层
完全正确
 楼主| gongche 发表于 2010-7-31 18:22 | 显示全部楼层
那些软仿真中,像PORT口的按键中断,在软仿真时如何模拟按键产生的中断呢??
宋倩2010 发表于 2010-7-31 18:22 | 显示全部楼层
软仿真里有个虚拟设备,可以模拟。
 楼主| gongche 发表于 2010-7-31 18:26 | 显示全部楼层
我找了找没有找到
宋倩2010 发表于 2010-7-31 18:29 | 显示全部楼层
211~213页
 楼主| gongche 发表于 2010-7-31 18:29 | 显示全部楼层
哦,多谢,我再仔细看看
hgjinwei 发表于 2010-8-1 10:05 | 显示全部楼层
可不可以这样得到比较精确的定时?

void dleay(uint16 dly)
{
       TIM_CTR = 0;    // 假设递增计数
     TIMER_ON;
        while(TIM_CRT <= dly) ;
       TIMER_OFF;
}
int3 发表于 2010-8-1 10:18 | 显示全部楼层
要多精准?一般延时也就做个大概。
songshupine 发表于 2010-8-1 11:28 | 显示全部楼层
1# gongche
我觉得可以,在需要延时的地方才打开定时器,定时器时间到只在中断程序中修改一个标志变量。而主程序在需要延时的地方就while着等标志变量变化,标志位变了说明时间到,然后把定时器关闭。这样的延时是比较准的。
sharpxcb 发表于 2010-8-1 15:49 | 显示全部楼层
是完全可行的,我经常这样用:
要搞清楚,定时器的允许中断位和判断标志位是两个不同的位,你在主程式的任何地方都可以判断定时器有没有计时(溢出)标志,而不一定要跑到中断中去判断的,前提是,你去判断的时间要小于定时器的计时时间!
杜专 发表于 2010-8-1 17:15 | 显示全部楼层
可以

可以把 看门狗放在 DELAY 中

在调用DELAY
您需要登录后才可以回帖 登录 | 注册

本版积分规则

768

主题

9410

帖子

2

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