在进行资产设备研发时,HC32L110定时器初始化

近期笔者在进行资产设备研发,该设备除了基本的定位功能外,为了更好地对客户的资产进行保护,还具有拆箱报警、温湿度监测灯功能(www.dtyw.net)。

比如对比较贵重的货物进行快递运输,由于担心货物在运输时遭遇偷窃或者因为震动而造成损坏,在这种情况下,就可以通过这款设备,来解决用户的问题,具有拆箱报警功能的资产监控设备,如果在运输途中,设备通过光感监测,判断遭到拆箱。如果货物遭到水浸或者火灾,通过温湿度监测的作用,用户也可在远程第一时间了解到货物的状态。

在研发过程中,该设备进行了多次的监测,需要进行定时器初始化,在这儿介绍下HC32L110的定时器初始化:

//1ms定时

//time = (0x10000-ARR)/(PCLK /16)

void Tim2_Init(void)

{

stc_bt_config_t stcBtConfig;

Clk_SetPeripheralGate(ClkPeripheralBt,TRUE); //使能定时器时钟

EnableNvic(TIM2_IRQn, 3, TRUE); //设置TIMER2中断

Bt_EnableIrq(TIM0); //允许TIMER2中断

stcBtConfig.pfnTim0Cb = Timer2_IRQHandle; //Timer2中断服务函数

stcBtConfig.enGateP = BtPositive; //门控极性设置

stcBtConfig.enGate = BtGateDisable; //无门控

stcBtConfig.enPRS = BtPCLKDiv8; //TIMER2时钟为PCLK 16分频

stcBtConfig.enTog = BtTogDisable; //禁止翻转输出

stcBtConfig.enCT = BtTimer; //工作在定时模式

stcBtConfig.enMD = BtMode2; //工作在模式2 16位自动重载定时器

Bt_Init(TIM2, &stcBtConfig); //TIMER2初始化

Bt_ARRSet(TIM0, 0xFE0C); //设置TIMER0重载值

Bt_Cnt16Set(TIM0, 0xFE0C); //设置TIMER0计数值

}

void Timer2_IRQHandle(void)

{

if(Bt_GetIntFlag(TIM2)== TRUE)

{

Usart_TimeOut();

Led_Task();

Bt_ClearIntFlag(TIM2);

}

}

主营产品:腰链,钮扣,仿生仿真制品,头饰,手链、脚链,耳环,金属工艺品,门锁