0

我想让 timer2 能够使用脉宽调制。我正在使用带有内部 8MHz 振荡器的PIC18F87J11 。我对 PIC 编程知之甚少,所以我想知道我的代码中还缺少什么来启用计时器。

#define TMR2_IF          PIR1bits.TMR2IF 
#define TMR2_IE          PIE1bits.TMR2IE
#define TMR2_IP          IPR1bits.TMR2IP
#define TMR2_CON         T2CON

假设这是我现在的主要代码

void main()
{
     TMR2_CON = 0b00000100 | CLOCK_DIVIDER_SETTING; // CLOCK_DIVIDER_SETTING = 4

     TMR2_IF = 0;
     TMR2_IE = 1;
     TMR2_IP = 1;

 while(1);

}

其余的代码我还不知道放在哪里。

if(TMR2_IF)
    {

        printf("\r\nHello");

        if(TMR2_IE)

         {
            TMR2_IF = 0;
         }

   }

我需要中断服务程序吗?如果是,我该如何添加它?记住我的目标是使用我还没有到达那里的 PWM,但现在我想确保 timer2 的设置是正确的。

还缺少什么?

提前致谢!

4

1 回答 1

0

改变while(1);

while(1)
{

if(TMR2_IF)
    {

        printf("\r\nHello");

        if(TMR2_IE)

         {
            TMR2_IF = 0;
         }

   }
}
于 2013-10-15T17:11:50.833 回答