hc32f003滴答定时器
时间: 2023-11-19 15:04:50 浏览: 173
HC32F003芯片具有一个基本定时器(BFTM)和一个高级定时器(GPTM),其中GPTM包括一个通用定时器(GPTM)和一个高级定时器(HRTM)。这些定时器都可以用作滴答定时器。下面是使用BFTM作为滴答定时器的示例代码:
```c
#include "hc32f003_bftm.h"
void BFTM_Config(void)
{
stc_bftm_config_t stcConfig;
stcConfig.enGateP = BFTM_GATE_PWM3;
stcConfig.enGate = BFTM_GATE_ENABLE;
stcConfig.enPRS = BFTM_PCLK_DIV64;
stcConfig.enCntMode = BFTM_MODE_SAWTOOTH;
stcConfig.enExtTrig = BFTM_EXTTRIG_DISABLE;
stcConfig.enOutputPolarity = BFTM_NORMAL_OUTPUT;
stcConfig.enOutputMask = BFTM_OUTPUT_UNMASK;
stcConfig.enMatch = BFTM_MATCH_CYCLE;
stcConfig.u16Cycle = 0xFFFF;
stcConfig.u16Compare = 0x7FFF;
BFTM_Init(&stcConfig);
BFTM_IntCmd(Enable);
BFTM_Start();
}
void BFTM_IRQHandler(void)
{
if (Set == BFTM_GetIntFlag())
{
BFTM_ClearIntFlag();
// 在此处添加滴答定时器中断处理程序
}
}
```
在上面的代码中,BFTM_Config()函数用于配置BFTM,其中设置了计数模式为锯齿波模式,计数周期为0xFFFF,比较值为0x7FFF,这意味着BFTM将在每个计数周期的中间产生一个中断。BFTM_IRQHandler()函数是BFTM的中断处理程序,可以在其中添加滴答定时器的中断处理代码。
阅读全文