0

PICMicro Cコンパイラを使用してPICプログラムのコードをコンパイルしようとすると、コードの割り込みサービスルーチン部分で「不完全なタイプは許可されていません」というエラーが発生しました。

char chB = 0;
int clicks = 0;
void interrupt ISR(void) //incomplete type is not allowed
{
    if(RBIF == 1)
    {
        clicks++;
        chB = PORTB;
        RBIF = 0;
    }
}

複数のソースをチェックした後でも、サービスルーチンがどのように正しく記述されているのかわかりません。

編集:あなたのすべての助けに感謝します、私は解決策を見つけました:

char chB = 0;
int clicks = 0;
#pragma vector = 0x04
__interrupt void isr(void)
{
    if(RBIF == 1)
    {
        clicks++;
        chB = PORTB;
        RBIF = 0;
    }
}
4

2 に答える 2

1

「interrupt ISR」はスペースが含まれているため、有効な名前ではありません。void interrupt_isr(void)大丈夫なはずです。

于 2012-11-22T04:50:59.760 に答える
0

PIC16xxx ファミリ MCU の場合、次の形式を使用します。

void interrupt () {

  } // end interrupt
于 2012-11-22T12:14:05.450 に答える