最近在使用华大的130系列单片机,有一个关于定时器的问题想要请教;官方给的代码是这样的,- int32_t main(void)
- {
- uint16_t u16ArrValue;
- uint16_t u16CntValue;
- stc_tim3_mode0_config_t stcTim3BaseCfg;
- stc_gpio_config_t stcLEDPortCfg;
-
- DDL_ZERO_STRUCT(stcTim3BaseCfg);
- DDL_ZERO_STRUCT(stcLEDPortCfg);
-
- Sysctrl_SetPeripheralGate(SysctrlPeripheralGpio, TRUE); //GPIO 外设时钟使能
- Sysctrl_SetPeripheralGate(SysctrlPeripheralTim3, TRUE); //Base Timer外设时钟使能
-
- //PD05设置为LED 控制引脚
- //Gpio_ClrAnalogMode(GpioPortD, GpioPin5);
- stcLEDPortCfg.enDir = GpioDirOut;
- Gpio_Init(GpioPortD, GpioPin5, &stcLEDPortCfg);
-
- stcTim3BaseCfg.enWorkMode = Tim3WorkMode0; //定时器模式
- stcTim3BaseCfg.enCT = Tim3Timer; //定时器功能,计数时钟为内部PCLK
- stcTim3BaseCfg.enPRS = Tim3PCLKDiv64; //PCLK/64
- stcTim3BaseCfg.enCntMode = Tim316bitArrMode; //自动重载16位计数器/定时器
- stcTim3BaseCfg.bEnTog = FALSE;
- stcTim3BaseCfg.bEnGate = FALSE;
- stcTim3BaseCfg.enGateP = Tim3GatePositive;
-
- stcTim3BaseCfg.pfnTim3Cb = Tim3Int; //中断函数入口
-
- Tim3_Mode0_Init(&stcTim3BaseCfg); //TIM3 的模式0功能初始化
-
- Tim3_ClearIntFlag(Tim3UevIrq); //清中断标志
-
- EnableNvic(TIM3_IRQn, IrqLevel3, TRUE); //TIM3 开中断
-
- Tim3_Mode0_EnableIrq(); //使能TIM3中断(模式0时只有一个中断)
-
- u16ArrValue = 0xA000;
-
- Tim3_M0_ARRSet(u16ArrValue); //设置重载值
-
- u16CntValue = 0xA000;
-
- Tim3_M0_Cnt16Set(u16CntValue); //设置计数初值
-
- Tim3_M0_Run(); //TIM3 运行。
-
- while (1);
- }
我想请问,这个计数值和重载值分别代表说明含义,如果我想设置定时器为1ms的中断应该如歌设置呢?现在单片机的时钟为4M。
|