打印

定时器

[复制链接]
1837|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
huanghuac|  楼主 | 2010-12-12 10:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
定时器能放在子程序中作延时时间调用不
沙发
huanghuac|  楼主 | 2010-12-12 10:40 | 只看该作者
如果这样用的话,什么时候开始计时?

使用特权

评论回复
板凳
宋倩2010| | 2010-12-12 10:57 | 只看该作者
你想在程序中调用中断程序?

使用特权

评论回复
地板
gongche| | 2010-12-12 11:12 | 只看该作者
一般用法是在定时器中断中设置标志位,在主程序中判断标志位,这样来使用。

使用特权

评论回复
5
huanghuac|  楼主 | 2010-12-12 11:30 | 只看该作者
我想来回调用它,呵呵

使用特权

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

使用特权

评论回复
7
宋倩2010| | 2010-12-12 12:09 | 只看该作者
是的

使用特权

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

使用特权

评论回复
9
宋倩2010| | 2010-12-12 15:02 | 只看该作者
完全正确

使用特权

评论回复
10
huanghuac|  楼主 | 2010-12-12 15:12 | 只看该作者
那些软仿真中,像PORT口的按键中断,在软仿真时如何模拟按键产生的中断呢??

使用特权

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

使用特权

评论回复
12
huanghuac|  楼主 | 2010-12-12 15:34 | 只看该作者
我找了找没有找到

使用特权

评论回复
13
宋倩2010| | 2010-12-12 15:40 | 只看该作者
211~213页

使用特权

评论回复
14
wenfen| | 2010-12-12 15:51 | 只看该作者
可不可以这样得到比较精确的定时?

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

使用特权

评论回复
15
happy_10| | 2010-12-12 15:56 | 只看该作者
要多精准?一般延时也就做个大概。

使用特权

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

使用特权

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

使用特权

评论回复
18
zhuhuis| | 2010-12-12 16:33 | 只看该作者
可以把 看门狗放在 DELAY 中

在调用DELAY

使用特权

评论回复
19
huwr| | 2010-12-12 16:42 | 只看该作者
完全可以,用个IF语句就可实现,而且比用延时函数效果要好

使用特权

评论回复
20
流泪鲨鱼| | 2010-12-13 10:21 | 只看该作者
:P

使用特权

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

本版积分规则

772

主题

8473

帖子

6

粉丝