stm8s输入捕获

输入捕获,简而言之,即 记录信号到来时刻的CNTR的值,然后把该值传给CCR。下面以PC1为例,代码如下:

    TIM1_CR1_DIR = 0;//计数器向上计数
    TIM1_IER_UIE = 1;//使能TIM1溢出中断  
    TIM1_PSCRH = 0x00;
    TIM1_PSCRL = 0x05; //配置TIM1为6分频->0.75us记一次数 
    TIM1_ARRH = 0xFF; 
    TIM1_ARRL = 0xFF; //自动重装载的值,49ms中断
    TIM1_CNTRH = 0xFF;
    TIM1_CNTRL = 0xFF;
   
    TIM1_CCER1_CC1E = 0;//禁止捕获使能
    TIM1_CCMR1_CC1S = 1;//输入捕捉//采样频率f SAMPLING =f MASTER ,N=8 //捕获输入口上检测到的每个事件触发一次捕获
    TIM1_CCER1_CC1P = 1;//1:捕捉发生在TI1F的低电平或下降沿     0:捕捉发生在TI1F的高电平或上升沿
    TIM1_CCR1L;//读取低8位,清除CC1IF ,躲过一开始进入中断//也可以直接清零TIM1_SR1_CC1IF位
    TIM1_IER_CC1IE = 1;//允许捕获/比较1中断
    TIM1_CCER1_CC1E = 1;//捕获使能    

    TIM1_CR1_CEN = 1; //使能TIM1    

注意:PC1为TIM1的CH1,中断函数中读取CCRH和CCRL的值即可得到信号到来时CNTR的值,CC1S仅在通道关闭时(TIM1_CCER1寄存器的CC1E=0)才是可写的

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值