设为首页 加入收藏

TOP

STM8S timer5初始化设置及应用(二)
2014-11-23 21:37:47 来源: 作者: 【 】 浏览:6
Tags:STM8S timer5 初始 设置 应用
== TIM5_InDir_UP) TIM5_CCER1 &= ~SETB1 ;//捕捉在TI1F或TI2F的上升沿 else TIM5_CCER1 |= SETB1 ; } else if(Chanel == TIM5_InChanel2)//通道2 { //捕捉在TI1F或TI2F的上升沿 if(Dircetion == TIM5_InDir_UP) TIM5_CCER1 &= ~SETB5 ; else TIM5_CCER1 |= SETB5 ; } else if(Chanel == TIM5_InChanel3)//通道3 { if(Dircetion == TIM5_InDir_UP) TIM5_CCER2 &= ~SETB1 ;//捕捉在TI3F的上升沿 else TIM5_CCER2 |= SETB1 ; } } #endif //TIM5_InDirection_CALL //************************************* // 函数名称:TIM5_InChanelEnb // 函数功能:TIM5输入通道使能函数 // 入口参数:TIM5通道号 使能参数 // 出口参数:无 /***************************************/ #ifdef TIM5_InChanelEnb_CALL void TIM5_InChanelEnb(uint8 Chanel,uint8 en) { if(ENB == en) { if(Chanel & TIM5_InChanel1) TIM5_CCER1 |= SETB0 ; //捕捉1使能 if(Chanel & TIM5_InChanel2) TIM5_CCER1 |= SETB4 ; //捕捉2使能 if(Chanel & TIM5_InChanel3) TIM5_CCER2 |= SETB0 ; //捕捉3使能 } else { if(Chanel & TIM5_InChanel1) TIM5_CCER1 &= ~SETB0 ; //捕捉1禁止使能 if(Chanel & TIM5_InChanel2) TIM5_CCER1 &= ~SETB4 ; //捕捉2禁止使能 if(Chanel & TIM5_InChanel3) TIM5_CCER2 &= ~SETB0 ; //捕捉3禁止使能 } } #endif //TIM5_InChanelEnb_CALL //************************************* // 函数名称:TIM5_IntEnb // 函数功能:TIM5中断使能函数 // 入口参数:TIM5中断号 使能参数 // 出口参数:无 /***************************************/ #ifdef TIM5_IntEnb_CALL void TIM5_IntEnb(uint8 Chanel,uint8 en) { if(ENB == en) { if(Chanel & TIM5_UpDate) TIM5_IER |= SETB0 ; //允许更新中断 if(Chanel & TIM5_InChanel1) TIM5_IER |= SETB1 ; //开捕捉/比较1中断 if(Chanel & TIM5_InChanel2) TIM5_IER |= SETB2 ; //开捕捉/比较2中断 if(Chanel & TIM5_InChanel3) TIM5_IER |= SETB3 ; //开捕捉/比较3中断 } else { if(Chanel & TIM5_UpDate) TIM5_IER &= ~SETB0 ; //禁止更新中断 if(Chanel & TIM5_InChanel1) TIM5_IER &= ~SETB1 ; //禁止捕捉/比较1中断 if(Chanel & TIM5_InChanel2) TIM5_IER &= ~SETB2 ; //禁止捕捉/比较2中断 if(Chanel & TIM5_InChanel3) TIM5_IER &= ~SETB3 ; //禁止捕捉/比较3中断 } } #endif //TIM5_IntEnb_CALL //************************************* // 函数名称:Tim5In_Enb // 函数功能:TIM5 开捕捉中断 // 入口参数: // 出口参数:无 /***************************************/ #ifdef TIM5_InEnb_CALL void TIM5_InEnb(uint8 en) { if(en == ENB) { TIM5_CNTRH = 0; TIM5_CNTRL = 0; //开捕捉/比较1.2中断 TIM5_IntEnb((TIM5_InChanel1 | TIM5_InChanel2),ENB) ; TIM5_CR1 |= 0X01 ; //开启定时器 } else { //关闭捕捉/比较1.2.3中断 TIM5_IntEnb((TIM5_InChanel1 | TIM5_InChanel2 | TIM5_InChanel3),DIS) ; TIM5_CR1 &= ~0X01 ; //关闭定时器 } } #endif //TIM5_InEnb_CALL //************************************* // 函数名称:Tim5er_Enb // 函数功能:TIM5er使能 作定时器用 // 入口参数: // 出口参数:无 /***************************************/ #ifdef TIM5_Enb_CALL void TIM5_Enb(uint8 en) { if(en == ENB) { TIM5_IntEnb(TIM5_UpDate,ENB) ; //使能更新中断 TIM5_CR1 |= 0X01 ; //开启定时器 } else { TIM5_IntEnb(TIM5_UpDate,DIS) ; //禁止更新中断 TIM5_CR1 &= ~0X01 ; //关闭定时器 } } #endif //TIM5_Enb_CALL //实例应用 void main(void) { //-----TIM5 初始化-------------------------- Init_TIM5_Base(30,TIM5_DIV16) ; //16M/16=1M 定时30*1U=30U中断一次 TIM5_Enb(ENB) ; //TIM5定时器使能计数 使能中断 while(1) { } }
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇二叉搜索树 C语言实现 下一篇堆 C语言实现

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: