Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PIC18上启用计时器2?_C_Timer_Embedded_Microcontroller_Pic - Fatal编程技术网

如何在PIC18上启用计时器2?

如何在PIC18上启用计时器2?,c,timer,embedded,microcontroller,pic,C,Timer,Embedded,Microcontroller,Pic,我想让timer2能够使用脉宽调制。我使用内置8MHz振荡器。我对PIC编程了解最少,所以我想知道我的代码中还缺少什么来启用计时器 #define TMR2_IF PIR1bits.TMR2IF #define TMR2_IE PIE1bits.TMR2IE #define TMR2_IP IPR1bits.TMR2IP #define TMR2_CON T2CON 假设这是我目前的主要代码 void main() {

我想让timer2能够使用脉宽调制。我使用内置8MHz振荡器。我对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,但我仍然没有达到,但现在我想确保定时器2的设置是正确的

还缺少什么?

提前谢谢

改变
while(1)


你用的是什么编译器?我仍然在思考时间2。还有什么建议吗?请看Microchip上的embeddedcodesource.com。在那里你会发现很多例子。谢谢,它似乎很有用。这打印出来很快,为什么呢?我注意到更改预分频器和后分频器并不会对它产生很大影响。我仍然看到声明可能每200毫秒打印一次
while(1)
{

if(TMR2_IF)
    {

        printf("\r\nHello");

        if(TMR2_IE)

         {
            TMR2_IF = 0;
         }

   }
}