打印

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

[复制链接]
3147|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 | 只看该作者
你想在程序中调用中断程序?

使用特权

评论回复
5
huanghuac| | 2010-7-31 18:15 | 只看该作者
一般用法是在定时器中断中设置标志位,在主程序中判断标志位,这样来使用。

使用特权

评论回复
6
gongche|  楼主 | 2010-7-31 18:15 | 只看该作者
你想在程序中调用中断程序?
宋倩2010 发表于 2010-7-31 18:14
我想来回调用它,呵呵

使用特权

评论回复
7
gongche|  楼主 | 2010-7-31 18:16 | 只看该作者
如果按照你说的,在一个输出开始计时的话是不是还要打开定时器中断?

使用特权

评论回复
8
宋倩2010| | 2010-7-31 18:16 | 只看该作者
是的

使用特权

评论回复
9
gongche|  楼主 | 2010-7-31 18:19 | 只看该作者
就是说打开了定时器中断时系统就开始计时了?

使用特权

评论回复
10
宋倩2010| | 2010-7-31 18:20 | 只看该作者
完全正确

使用特权

评论回复
11
gongche|  楼主 | 2010-7-31 18:22 | 只看该作者
那些软仿真中,像PORT口的按键中断,在软仿真时如何模拟按键产生的中断呢??

使用特权

评论回复
12
宋倩2010| | 2010-7-31 18:22 | 只看该作者
软仿真里有个虚拟设备,可以模拟。

使用特权

评论回复
13
gongche|  楼主 | 2010-7-31 18:26 | 只看该作者
我找了找没有找到

使用特权

评论回复
14
宋倩2010| | 2010-7-31 18:29 | 只看该作者
211~213页

使用特权

评论回复
15
gongche|  楼主 | 2010-7-31 18:29 | 只看该作者
哦,多谢,我再仔细看看

使用特权

评论回复
16
hgjinwei| | 2010-8-1 10:05 | 只看该作者
可不可以这样得到比较精确的定时?

void dleay(uint16 dly)
{
       TIM_CTR = 0;    // 假设递增计数
     TIMER_ON;
        while(TIM_CRT <= dly) ;
       TIMER_OFF;
}

使用特权

评论回复
17
int3| | 2010-8-1 10:18 | 只看该作者
要多精准?一般延时也就做个大概。

使用特权

评论回复
18
songshupine| | 2010-8-1 11:28 | 只看该作者
1# gongche
我觉得可以,在需要延时的地方才打开定时器,定时器时间到只在中断程序中修改一个标志变量。而主程序在需要延时的地方就while着等标志变量变化,标志位变了说明时间到,然后把定时器关闭。这样的延时是比较准的。

使用特权

评论回复
19
sharpxcb| | 2010-8-1 15:49 | 只看该作者
是完全可行的,我经常这样用:
要搞清楚,定时器的允许中断位和判断标志位是两个不同的位,你在主程式的任何地方都可以判断定时器有没有计时(溢出)标志,而不一定要跑到中断中去判断的,前提是,你去判断的时间要小于定时器的计时时间!

使用特权

评论回复
20
杜专| | 2010-8-1 17:15 | 只看该作者
可以

可以把 看门狗放在 DELAY 中

在调用DELAY

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

768

主题

9410

帖子

2

粉丝