如何在PIC18上启用计时器2?
我想让timer2能够使用脉宽调制。我使用内置8MHz振荡器。我对PIC编程了解最少,所以我想知道我的代码中还缺少什么来启用计时器如何在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() {
#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;
}
}
}