打印

STM8 TIM1-PWM 死活不输出

[复制链接]
8427|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yurulin|  楼主 | 2010-11-15 11:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
TI, STM8, PWM, pc, hz
void main ( void )
{
  _asm("rim");
  
  PC_DDR |= 0x0E;              /* Output.                  */
    PC_CR1 |= 0x0E;              /* PushPull.                */
    PC_CR2  = 0x0E;              /* Output speed up to 10MHz. */
  
  
  TIM1_ARRH   = 0x10;          //输出脉冲周期16MHz/65535
    TIM1_ARRL   = 0x00;           // 输出脉冲周期16MHz/65535   
    TIM1_CCR1H   = 0x07;           // 输出脉宽      
    TIM1_CCR1L   = 0xff;           // 输出脉宽   
    TIM1_CCMR1 |= 0x60;           // PC1脚PWM输出,PWM模式1
    TIM1_CCER1 |= 0x01;          // CH1/CH2/ 关闭互补输出;高电平有效输出高;
    TIM1_IER   = 0x03;           // 允许产生更新事件中断
    TIM1_CR1   = 0x01;           //启动计数器
    while ( 1 );
}  

更新中断和比较中断都有参数,就是PWM死活不输出,我对他的数据手册反反复复看,也做了各种设置方式, 就是不在PC1脚上输出;
沙发
yurulin|  楼主 | 2010-11-15 11:21 | 只看该作者
更新中断和比较中断都有产生;  就是PC1脚不输出PWM电压

使用特权

评论回复
板凳
jgphu| | 2010-11-15 11:22 | 只看该作者
你的程序有问题,下面的程序是我自己写的,给你作参考:
/*
**-----------------------------------------------------------------------------
**
**  Abstract:
**        TIM1初始化, 更新时间为40uS(PWM输出周期/25MHz)
**
**  Parameters:
**        None
**
**  Returns:
**        None
**
**-----------------------------------------------------------------------------
*/
void TIM1_Init(void)
{
        CLK_PCKENR1 |= 0x80;                       //开启定时器1外设时钟
       
        TIM1_EGR |= 0x01;                          //重新初始化TIM1
       
        TIM1_ARRH = (UCHAR)(TIM1_Period >> 8);     //设定重装载值
        TIM1_ARRL = (UCHAR)(TIM1_Period);

        TIM1_PSCRH = 0x00;                         //设定预分频为1 = 16M
        TIM1_PSCRL = 0x00;

        TIM1_CR1 = 0x00;                           //边沿对齐,向上计数
        TIM1_RCR = 0x00;
}

/*
**-----------------------------------------------------------------------------
**
**  Abstract:
**        TIM1_CC2 PWM输出初始化
**
**  Parameters:
**        None
**
**  Returns:
**        None
**
**-----------------------------------------------------------------------------
*/
void TIM1_OC2Init(void)
{
        TIM1_CCER1 = 0x30;                           //CC2E开启,高电平有效
        TIM1_CCMR2 = 0x70;                           //PWM模式1,CC1配置入输出
        TIM1_OISR &= ~0x03;
        TIM1_CCR2H = (UCHAR)(TIM1_Pulse >> 8);
        TIM1_CCR2L = (UCHAR)(TIM1_Pulse);
}

/*
**-----------------------------------------------------------------------------
**
**  Abstract:
**        TIM1使能或禁止
**
**  Parameters:
**        None
**
**  Returns:
**        None
**
**-----------------------------------------------------------------------------
*/
void TIM1_Cmd(FunctionalState NewState)
{
        if(NewState != DISABLE)
        {
                TIM1_CR1 |= 0x01;                          //使能计数器
        }
        else
        {
                TIM1_CR1 &= ~0x01;                         //禁止计数器
        }
}

/*
**-----------------------------------------------------------------------------
**
**  Abstract:
**        TIM1_CC2 PWM输出控制
**
**  Parameters:
**        None
**
**  Returns:
**        None
**
**-----------------------------------------------------------------------------
*/
void  TIM1_CtrlPWMOutPuts(FunctionalState NewState)
{
        if(NewState != DISABLE)
        {
                TIM1_BKR |= 0x80;
        }
        else
        {
                TIM1_BKR &= ~0x80;
        }
}

使用特权

评论回复
地板
yurulin|  楼主 | 2010-11-15 11:39 | 只看该作者
谢谢  jgphu   万分感谢!

就差TIM1_BKR没有设置;

使用特权

评论回复
5
gxbltao| | 2015-1-7 17:37 | 只看该作者
你这是固件 函数库的吗

使用特权

评论回复
6
zl_3511@163| | 2015-6-16 20:52 | 只看该作者
void tim1_pwm1 (void)
{
        /*定时器系统时钟为20us*/
         TIM1_PSCRH =0X01;
   TIM1_PSCRL =0X40;
        /* 输出20ms的方波,频率50hz*/
        TIM1_ARRH = 0X03;
        TIM1_ARRL = 0XE8;
        /*输出占空比为8.1%的方波*/
        TIM1_CCR1H =  pwm_1[tim_c1];
        tim_c1 ++;
        TIM1_CCR1L = pwm_1[tim_c1];
        tim_c1 ++;
        TIM1_CCMR1 = 0X60;
        TIM1_CCER1 = 0X01;
       
        TIM1_OISR =  0X00;
        TIM1_CR1=0X01;//开始计数
        TIM1_BKR=0X80;//

使用特权

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

本版积分规则

17

主题

68

帖子

1

粉丝