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 を使用することであることを思い出してください。

他に何が欠けていますか?

前もって感謝します!

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 に答える