你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

关于编码盘与PWM的疑惑

[复制链接]
傲气凌云 提问时间:2017-11-15 12:39 /
最近在做电机控制的项目,因为牵扯到电机的PI控制,所以想用到编码盘,但编码盘和PWM控制似乎都只能用TMR1来做,但似乎有冲突。附上程序编码盘初始化:

void  TIM1_Init(void)
{
    TIM1_CR1=0x00; //up count,interrupt not stop count
    TIM1_IER=0x00;
    TIM1_PSCRH=0x0; //PSC 10000 hz
    TIM1_PSCRL=0x0;

    TIM1_ARRH=0xFF;   //这里步数从-32767—32767
    TIM1_ARRL=0xFF;

    TIM1_CCMR1=0x01;
    TIM1_CCMR2=0x01;
    TIM1_CCER1=0x22;
    TIM1_SMCR=0x03;
    TIM1_CR1=0x01;  //counter enable
}


PWM初始化
void PwmTIM1(void)
{
    TIM1_EGR = 0x01;//初始化TIM1                  TIM1时基初始化
    TIM1_EGR |= 0x20;//重新初始化TIM1
    TIM1_CR1 = 0x80;//边沿对齐,向上计数,带缓冲***************
    TIM1_RCR = 0x01;//重复计数器***************************************
    TIM1_PSCRH = 0;   //预分频                         设置PWM频率
    TIM1_PSCRL = 0;
    TIM1_ARRH = 0x00; //设定重装载值      
    TIM1_ARRL = 150;


    TIM1_CCER1 = 0x55;//高/低电平有效(CCiP),使能PWM输出(CCiE)使能互补输出 (CCiNE),互补高/低电平有效(CCiNP)   
    TIM1_CCMR1 = 0X6C;
    TIM1_CCER2 = 0x55;//高/低电平有效(CCiP),使能PWM输出(CCiE)使能互补输出 (CCiNE),互补高/低电平有效(CCiNP)   
    TIM1_CCMR2 = 0x6C;//PWM模式1                  通道2PWM输出
    TIM1_CCMR3 = 0x6C;//PWM模式1                  通道3PWM输出
    TIM1_BKR = 0x80;//主使能
    TIM1_DTR = 0x12;//插入2us死区时间
    TIM1_CR1_CEN = 0x01;//计数使能                     
}


其中TIM1_ARRH 和TIM1_ARRL两个寄存器是重复定义的,不知道大家有其他办法么,我使用的芯片是STM8S105,望大神帮忙解答
收藏 评论1 发布时间:2017-11-15 12:39

举报

1个回答
七哥 回答时间:2017-11-15 14:01:52
不知道你所说的“TIM1_ARRH 和TIM1_ARRL两个寄存器是重复定义”,是个什么情况,在哪重复定义的?

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版