优秀案例News CREATE A CENTURY BRAND OF BISHAN

您现在的位置:主页 > 优秀案例 >

千赢国际中心STM8s--定时器(time4)

2018-06-27 13:50

启动定时器 TIM4_IER=0x01;//允许更新中断 _asm("rim");//允许CPU全局中断 while(1)//进入无穷轮回 { } } @far@ interrupt voidTIM4_UPD_OVF_IRQHandler(void) { TIM4_SR1=0x00;//断根更新标志 PD_ODR=PD_ODR^0x08;// LED 驱动信号取反 //LED明灭频率=2MHZ/128/255/2=30.63 } 0 16位定时器: main() { //起首初始化GPIO PD_DDR=0x08; PD_CR1=0x08;//将PD3设置成推挽输出 PD_CR2=0x00; //然后初始化定时器4 TIM2_IER=0x00;//禁止中断 TIM2_EGR=0x01;//允许发生更新事务 TIM2_PSCR=0x01;//计数器时钟=主时钟/128=2MHZ/2 //相当于计数器周期为1uS //设定重装时的寄放器值 //注意必须保证先写入高8位。

启动定时器 TIM2_IER=0x01;//允许更新中断 _asm("rim");//允许CPU全局中断 while(1)//进入无穷轮回 { } } //函数功效:定时器4的更新中断服务法式 //输入参数:无 //输出参数:无 //返回值:无 @far@interruptvoidTIM2_UPD_IRQHandler(void) { TIM2_SR1=0x00;//断根更新标志 PD_ODR=PD_ODR^0x08;//LED驱动信号取反 //LED明灭频率=2MHZ/2/60000/2=8.3 , ●中断发生 在计数器更新时:计数器溢出, 本文引用地点: 几个相干的寄放器; 节制寄放器1 (TIMx_CR1) 节制寄放器2 (TIMx_CR2)[注意:TIM4没有该寄放器] 事务发生寄放器(TIMx_EGR) 状态寄放器1 (TIMx_SR1) 中断使能寄放器(TIMx_IER) 自动重装载寄放器(TIMx_ARR) 预分频寄放器(TIMx_PSCR)计数器时钟频率fCK_CNT=fCK_PSC/ 2(PSC[2:0]) 计数器(TIMx_CNTR){TIMx_CNTRL TIMx_CNTRH} 详细内容见:STM8S数据手册 8位 定时器 main() { //起首初始化GPIO PD_DDR=0x08; PD_CR1=0x08;//将PD3设置成推挽输出 PD_CR2=0x00; //然后初始化定时器4 TIM4_IER=0x00;//禁止中断 TIM4_EGR=0x01;//允许发生更新事务 TIM4_PSCR=0x07;//计数器时钟=主时钟/128=2MHZ/128 //相当于计数器周期为64uS TIM4_ARR=255;//设定重装载时的寄放器值, 16,千赢国际平台,允许更新 //设置节制器。

供给1,千赢国际,允许计数器事情 //b1=0, 32, 4,千赢国际,再写入低8位 TIM2_ARRH=0xEA;//设定重装载时的寄放器的高8位 TIM2_ARRL=0x60; TIM2_CNTRH=0xEA;//设定计数器的初值 TIM2_CNTRL=0x60; //定时周期=1*60000=60000uS=60ms TIM2_CR1=0x01;//b0=1,允许更新 //设置节制器。

TIME4: ● 8位向上计数的自动重载计数器; ● 3位 可编程 的预分派器(可在 运行中点窜), 64 和128 这8种分频比例, 2,允许计数器事情 //b1=0,255是最大值 TIM4_CNTR=255;//设定计数器的初值 //定时周期=(ARR+1)*64=16320uS TIM4_CR1=0x01;//b0=1, 8,。

上一篇:千赢国际DMA/中断功能; 通道工作在输出比较定时模式

下一篇:千赢国际然后重新从0开始计数并且产生一个计数器溢出事件