4923|3

63

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

STM8TIM1-PWM死活不输出 [复制链接]

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脚上输出;
此帖出自stm32/stm8论坛

最新回复

                                 谢谢  jgphu   万分感谢! 就差TIM1_BKR没有设置;  详情 回复 发表于 2010-11-15 11:39
点赞 关注
 

回复
举报

70

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 更新中断和比较中断都有产生;  就是PC1脚不输出PWM电压
此帖出自stm32/stm8论坛
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
你的程序有问题,下面的程序是我自己写的,给你作参考:
/*
**-----------------------------------------------------------------------------
**
**  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;
        }
}
此帖出自stm32/stm8论坛
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
谢谢  jgphu   万分感谢!

就差TIM1_BKR没有设置;
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表