ARM学习随笔(16)定时器的使用

ADuC7023具有3个通用定时器/计数器:定时器0、定时器1和定时器2(或看门狗定时器)。
这3个定时器可以在自由模式或周期模式下工作。

在自由模式下,计数器将从最大值递减计数一直到零,并且在达到最小值后重新递增计数。(它也可以从最小值开始递增计数直到满量程并且在达到最大值后重新开始递减计数。)


在周期模式下,计数器以装载寄存器(TxLD寄存器)中的值为起始值,开始递减/递增计数至0或满量程,然后再以该寄存器中的值为起始值,重新开始计数。(即一旦打开定时器,会一直周期循环不停的计数,如果在定时器中断处理程序中没有及早的关闭定时器,则可能会导致中断混乱,这次中断未处理完,下次中断来临。因此很有必要添加这几句:

T1CON=0x40; //关闭定时器,就不会产生中断
T1CLRI = 0; // Clear Timer IRQ

//处理中断代码

//T1CON=0xC0;                    //处理完毕后如果还需要采用刚才的装载寄存器装载的值进行定时的话可以再开启中断。


通过对某一定时器的控制寄存器(TxCON)进行写操作,可以启动相应的定时器。
在正常模式下,当递减计数时,每一次计数器的值达到0时就会产生一个IRQ中断。当递增计数时,每一次计数器的值达到满量程值时也会产生一个IRQ中断。向某一定时器(TxCLRI)的清除寄存器内写入任一数据,可以清除IRQ中断。
②当使用异步的时钟定时器时,取消定时器模块内的中断所占用的时间要比执行中断程序中的代码所占用的时间长。在退出中断服务程序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值