打印
[STM8]

三种组合

[复制链接]
548|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
shimx|  楼主 | 2017-10-28 17:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
stm8s的tim1的pwm输出
请问定时器使能,主输出使能和通道输出使能三种组合,任意有一个不使能时通道的电平状态时什么?
沙发
zhaoxqi| | 2017-10-28 17:21 | 只看该作者
然后呢?你是怎么应对这个的呢

使用特权

评论回复
板凳
shimx|  楼主 | 2017-10-28 17:26 | 只看该作者

datasheet上描述如下,但是描述的是有互补输出的情况,但是还是理解的不清楚CC1 通道配置为输出: 0:  关闭- OC1 禁止输出,因此OC1的输出电平依赖于MOE、OSSI、OSSR 、OIS1、OIS1N
和CC1NE位的值。
1:  开启- OC1 信号输出到对应的输出引脚,其输出电平依赖于MOE、OSSI、OSSR 、
OIS1、OIS1N 和CC1NE位的值。

使用特权

评论回复
地板
jiajs| | 2017-10-28 17:29 | 只看该作者
有默认电平状态设置的。

使用特权

评论回复
5
yinxiangh| | 2017-10-28 17:32 | 只看该作者

紧急求助!!!!stm8s003 tim1的pwm输出程序我调试了两天了怎么也输出不了!请高人指点一下,谢谢啦!!!
TIM2的PWM可以输出就色TIM1的PC3-----7我想做成PWM输出,可怎么都没法输出!没有一个通道能输出,急死我!!
请大家帮我修改一下,谢谢!!
void InitTime1(void)
{
  /******************************************
  ***********************************************/
  TIM1_CCMR1 |= 0x78;      /* Output mode PWM2.TIM_CNT>TIM_CCR时,输出有效电平,使能预装载                      */
    //TIM1_CCMR1 |= 0x70;      /* Output mode PWM2.TIM_CNT>TIM_CCR时,输出有效电平,使能预装载                      */  
   TIM1_CCER1 |= 0x03;      /* CC polarity high,enable PWM output      */
  TIM1_ARRH    = 0x07;         /* Freq control register: ARR             */
    TIM1_ARRL    = 0xD0;         /* Freq control register: ARR             */

  TIM1_CCR1H   = 0x03;         /* Dutycycle control register: CCR        */
    TIM1_CCR1L  = 0XE8;      /* Dutycycle control register: CCR        */
  TIM1_BKR    |=0X80;    //MOE =1;主输出使能
  //TIM1_RCR=200;
  ///TIM1_RCR=10;
  TIM1_RCR=0x01;  //重复计数器
  TIM1_PSCRH = 00;
  //TIM1_PSCRL = 0x1F;      ///32分频=16M/32=500KHZ
    TIM1_PSCRL = 0x07;//8分频=16M/8=2000KHZ
  TIM1_CR1   |= 0x81;      /* Enable TIM3.   TIM3->ARR通 过预装载寄存器缓冲      */
    //TIM1_CR1   |= 0x01;      /* Enable TIM1.   TIM3->ARR立 即写入影子寄存器    */
    ///TIM1_IER |= 0x01; //充许更新中断  UIE
}
void InitTime2(void)
{

        /*定时器基础设置*/
        CLK_CKDIVR= 0x00; //内部16M时钟不分频
        TIM2_PSCR = 0x00;  //定时器2预分频系数为1
        TIM2_CR1 = 0x01;  //内部计数器使能;
        TIM2_ARRH = 0x01;//0140,320分频,16M/320=50K,实测49.75K
        TIM2_ARRL = 0x3e;//自动装载寄存器低位;实测013e正好为50.0K
#if TIM2_PWM1        
        /*PWM通道1设置*/
        TIM2_CCER1 |= 0x01;   //开启OC1信号输出脚//CH1:PC5口输出;50KHz,占空比50%
        TIM2_CCMR1 = 0x60;   //PWM1模式  
        TIM2_CCR1H = 0x00;    //占空比高位
        TIM2_CCR1L = 0xa0;   //占空比低位
        TIM2_CCMR1 |= 0x08;  //输出比较1预装载使能
#endif        
}

使用特权

评论回复
6
wyjie| | 2017-10-28 17:36 | 只看该作者
同问啊 我也是stm8s103k的tim1怎么也输出不了pwm 求大神解释啊

使用特权

评论回复
7
ousj| | 2017-10-28 19:07 | 只看该作者
TIM1_CCER1 |= 0x03;通道设置错了,这是TIM1_CH1通道,PC1口

使用特权

评论回复
8
heweibig| | 2017-10-28 19:09 | 只看该作者

我的PC1口PWM能输出,但是示波器看波形,断断续续的。在PWM波形中会停一段时间几十MS或几MS。

使用特权

评论回复
9
jiahy| | 2017-10-28 19:13 | 只看该作者
建议楼主下载ST官方例程的程序学习,我就是看的例程,输出了PWM,但是用的是stm8l101单片机

使用特权

评论回复
10
huanghuac| | 2017-10-28 19:15 | 只看该作者
PC3 对应的PWM端口是 TIME1_CH3     TIM1_CCR1H   = 0x03;         /* Dutycycle control register: CCR        */TIM1_CCR1L  = 0XE8;      /* Dutycycle control register: CCR        */  TIM1_CCR1H   1H表示TIM1_CH1

使用特权

评论回复
11
shimx|  楼主 | 2017-10-28 19:16 | 只看该作者
其实还是不大明白,我再琢磨琢磨吧,多谢了哈,结贴了先

使用特权

评论回复
12
dongnanxibei| | 2017-10-28 22:06 | 只看该作者
跑一个测试一下,看看就知道了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

857

主题

10661

帖子

5

粉丝