/**********TIM1中断函数**********/
void Tim1_IRQHandler(void)//10ms
{
if (TRUE == Bt_GetIntFlag(TIM1))
{
Bt_ClearIntFlag(TIM1);//清除标志位
if(++Time100ms_Cnt>9) //100ms
{
Falg|=0x01;
Time100ms_Cnt=0;
}
}
}
/**********TIM1配置**********/
void TIM1_Config(void)
{
stc_bt_config_t stcConfig;
uint16_t u16ArrData = 55536; //10ms中断一次
uint16_t u16InitCntData = 55536;
//开启基础定时器时钟
Clk_SetPeripheralGate(ClkPeripheralBt, TRUE);
stcConfig.pfnTim1Cb = Tim1_IRQHandler;//TIM1中断入口
stcConfig.enGateP = BtPositive; //门控极性控制,高电平有效
stcConfig.enGate = BtGateDisable; //门控禁止
stcConfig.enPRS = BtPCLKDiv2; //预除频配置,二分频 PLCK/2=2MHz/2=1MHz
stcConfig.enTog = BtTogDisable; //反转输出使能禁止
stcConfig.enCT = BtTimer; //定时/计数功能选择,当前为定时器功能
stcConfig.enMD = BtMode2; //计数模式配置,当前为自动重装载16位计数器/定时器模式
//Bt初始化
Bt_Init(TIM1, &stcConfig);
//TIM1中断使能
Bt_ClearIntFlag(TIM1);
Bt_EnableIrq(TIM1);
EnableNvic(TIM1_IRQn, 3, TRUE);
//设置重载值和计数值,启动计数
Bt_ARRSet(TIM1, u16ArrData);
Bt_Cnt16Set(TIM1, u16InitCntData);
Bt_Run(TIM1);
}
以上代码定时器TIM1运行正常,但是我按照上述方式配置使用TIM0时(将TIM1相关信息改成TIM0),定时器不能运行。不知道是什么原因导致的,望解答谢谢!
|