4、RH850 F1 定时器OSTM功能和配置

前言

OS Timer定时器功能比较简单,这个定时器一般作为间隔定时器使用,对于OS系统,可以作为节拍(tick)定时器。在间隔定时器模式,是一个32bit倒计时,计数到0,产生中断。

 

  • OS Timer定时器寄存器介绍

1.1、OSTMn比较寄存器OSTMnCMP — OSTMn Compare Register

54abf61227e3470289d2db858aa024a9.png

Bit position

Bit Name

Function

31 - 0

OSTMnCMP

间隔定时模式:倒计时初始值

比较模式:比较寄存器值

 

1.2、OSTMn计数器寄存器OSTMnCNT — OSTMn Counter Register

29dc8852ed9e4fbca4fc085accf9b284.png

 

Bit position

Bit Name

Function

31 - 0

OSTMnCNT

间隔定时模式:向下计时

比较模式:向上计数

 

1.3、OSTMn计数使能寄存器OSTMnTE—OSTMn Count Enable Status Register

8933fe861c3c407bbab199a9c277fa57.png

Bit position

Bit Name

Function

0

OSTMnTE

0:计时禁止

1:使能计数

 

使用定时器,寄存器置1使能。

 

1.4、OSTMn计数开始寄存器OSTMnTS — OSTMn Count Start Trigger Register

1654ef46b8af4813aa8bab5bc4cb22f5.png

Bit position

Bit Name

Function

0

OSTMnTS

0:无效

1:开始计数

 

使用定时器,使能寄存器置1使能,开始寄存器置1开始计时。

 

1.5、OSTMn计数停止寄存器OSTMnTT — OSTMn Count Stop Trigger Register

bdcfcc7abead40cd80ded522b82f323c.png

Bit position

Bit Name

Function

0

OSTMnTT

0:无效

1:停止计数并且清使能位

 

例程:

Void OSTIM_init(void)

{

 OSTM0EMU = 0x00u;   /* Counter is stopped when Debugger takes control */

    OSTM0CTL = 0x01u;   /* IntervalTimer Mode / Interrupt on CounterStart enabled */

    

    OSTM0CMP = 40000u; /* OSTM0 Cycle = 40000/40MHz = 1ms */

    

    /* StartTrigger */

    OSTM0TS = 0x01u;    

    

    INTC2TBOSTM0 = 1u; /* Table interrupt is enabled by setting the table bit to 1 */

    INTC2MKOSTM0 = 0u; /* Interrupt is unmasked by setting the mask bit to 0 */  

 

INTC2P2OSTM0 = 0u;

INTC2P1OSTM0 = 1u;

INTC2P0OSTM0 = 0u;

}

 

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Vx cr_8118

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值