关于stc8H高级定时器寄存器

 首先,STC8H不需要外部晶振和外部复位,也可以外接。它的时钟4M-36M。和其它stc芯片的区别是它的运行速度够快,8路16位的高级pwm定时器,4路可以输出互补的脉冲信号,在用这个芯片的时候我发现手册上有些地方讲的不是太清楚,对照了32的手册才明白了原理,今天着重说一下高级定时器的那部分。     

STC8H 系列的单片机内部集成了 8 通道 16 位高级 PWM 定时器,分成两组周期可不同的 PWM,分别命名为 PWMA 和 PWMB可分别单独设置。第一组 PWM/PWMA 可配置成 4 组互补/对称/死区控制的 PWM 或捕捉外部信号,第二组 PWM/PWMB 可配置成 4 路 PWM 输出或捕捉外部信号。

pwmA可配置成输出比较,输入捕获以及pwm模式,pwm有边沿对齐以及中间对齐模式,可直接驱动一些小型的电机,在驱动一些小型的电机时一定要将相应的io口配成推挽输出在,不然驱动不起来,具体的原理就不写了,主要说一下主要寄存器以及主要模式的配置。

PWMX--ENO主要是使能相应pwm的输出很简单。

PWMCR1--控制寄存器。选择计数器的模式,一般是边沿对齐。使能计数器以及预装载,计数器是最后使能,如果用pwm模式最好使能预装载,不然可能会出错。

PWM-- CCER1:  CC1E 使能捕获 比较输出,CC1P =0 高电平有效,1低电平有效,通俗点就是==0,先输出高电平,先捕获上升沿;==1,先输出低电平,先捕获下降沿。

PWM --CCMR1,选是pwm模式还是其它模式,当CCER1 的 CC1E=0,设置此模式才有效。手册中pwm写到 PWM1时,在向上计数时,当PWMn_CNT<PWMn_CCR1时OCnREF输出高,否则OCnREF输出低;在向下计数时,当PWMn_CNT>PWMn_CCR1时,OCnREF输出低,否则OCnREF输出高。其实应该这样写,当PWM--CCER1的,CC1P=0时,这样是成立的。当CC1P=1,输出结果是和手册中写的反过来的。

另外当你输出为翻转模式时,PWMA_CCMR1不能写入while循环,不然不能正常输出。

另外还有刹车寄存器,以及中断寄存器IER、中断状态寄存器SR1,预分频器PSCR,捕获比较寄存器CCR1,也就是设占空比的,ARR设频率的寄存器等等,手册上写的很清除,就不一一介绍了。

输出模式配置步骤:

1. 选择计数器时钟(内部、外部或者预分频器(PSCR)),我用的都是内部。

    预分频器看你想要输出的频率范围自己设置

2. 将相应的数据写入 PWMA_ARR(设频率) 和 PWMA_CCRi (设占空比)寄存器中。频率=时钟/(PSCR+1)/(ARR+1)

3. 如果要产生一个中断请求,设置 CCiIE 位,在中断判断SR1状态位,PWMA和PWMB不是一个中断号。

4. 选择输出模式步骤:

1. 设置 OCiM=011,在计数器与 CCRi 匹配时翻转 OCiM 管脚的输出

2. 设置 OCiPE = 0,禁用预装载寄存器

3. 设置 CCiP = 0,选择高电平为有效电平,开始输出高电平。

4. 设置 CCiE = 1,使能输出

5. 设置 PWMA_CR1 寄存器的 CEN 位来启动计数器。

输入捕获配置:

先设置PSCR,根据你的所测频率范围来设数据。设ARR一般为最大值

1.选择有效输入端,设置 PWMA_CCMR1 寄存器中的 CC1S=01,此时通道被配置为输入,并且PWMA_CCR1 寄存器变为只读。

2. 根据输入信号 TIi 的特点,可通过配置 PWMA_CCMR1 寄存器中的 IC1F 位来设置相应的输入滤波器的滤波时间。假设输入信号在最多 5 个时钟周期的时间内抖动,我们须配置滤波器的带宽长于 5 个时钟周期;因此我们可以连续采样 8 次,以确认在 TI1 上一次真实的边沿变换,即在PWMA_CCMR1 寄存器中写入 IC1F=0011,此时,只有连续采样到 8 个相同的 TI1 信号,信号才为有效(采样频率为 fMASTER)。

3. 选择 TI1 通道的有效转换边沿,在 PWMA_CCER1 寄存器中写入 CC1P=0(上升沿)。

4. 配置输入预分频器。在本例中,我们希望捕获发生在每一个有效的电平转换时刻,因此预分频器被禁止(写 PWMA_CCMR1 寄存器的 IC1PS=00)。

5. 设置 PWMA_CCER1 寄存器的 CC1E=1,允许捕获计数器的值到捕获寄存器中。

6. 如果需要,通过设置

PWMA_IER 寄存器中的 CC1IE 位允许相关中断请求。

7.使能计数器设置 PWMA_CR1 寄存器的 CEN 位来启动计数器。

以上内容就介绍到这,使用此芯片的感觉,除了速度没有32的快,其它相关功能大体上还是挺全面的,听说新出了STC32的芯片,还没有试过后续会测试一下。

  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxxsdn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值