首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CCP模块- PWM模式

CCP模块- PWM模式
EN

Stack Overflow用户
提问于 2014-10-27 15:08:16
回答 1查看 706关注 0票数 0

我试图用这段代码来实现PWM输出,但显然缺少了一些东西。因为当我检查MPLab中的时,CCP2输出不会发生任何变化。我和pic18f25k80一起工作。

代码语言:javascript
复制
void main() {

    // Set up PWM
    CCP2CON = 0b00001100;       // Enable PWM on CCP2, bits 5:4 are LSB part of duty cycle
    CCPTMRS = 0b00000000;       // Use timer2 for all CCP modules
    CCPR2L = 31;                // MSB part of duty cycle
    TRISC = 0b00000000;         // Set port C as output
    PORTC = 0;                  // Clear port C

    // Set Up timer2
    PR2 = 249;                  // PWM period = (PR+1)*4*Tcy = 1ms
    T2CON = 0b00000100;         // Enable TMR2 with prescaler = 1

    while(1)
    {
    }
}

我想什么时候

  • TMR2 = PR2,重新设置CCP2输出开关和计时器

  • 此外,TMR2 = CCPR2L (占空比),CCP2输出开关

  • TMR2一直在计数,直到到达第1步为止。 我想这应该是自动发生的。我的意思是,我不必为此编写代码,因为这是PWM模块的功能,对吗?我遗漏了什么?
EN

回答 1

Stack Overflow用户

发布于 2014-10-28 09:19:10

更多信息:

  • TMR 2正在计数。
  • 当我在while循环中添加PORTC = 0xFF;并再次调试代码时。除了RC2 (RC2 =相应的CCP2输出)外,C端口上的所有信号都是设置的。
  • 当我为CCP3尝试相同的代码时,端口C上的所有信号都会被设置,除了RC2和RC6 (RC6 =相应的CCP3输出)。
  • 当我用PORTC = 0xFF;替换PORTCbits.CCP2 = 1;时,只有RC1被设置得很高。

这最后一颗子弹是否意味着CCP2被RC1而不是RC2屏蔽?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26590612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档