[戻る]
一括表示

ADC割り込みが出来ない 投稿者:PICは初心者 投稿日:2018/04/18(Wed) 16:12:11 No.1149

はじめまして、昔8ビットのPICは使っていましたが、
PIC32が値段が安く高性能なので使いだしました。
問題はAD変換を一定周期でする為にタイマ3で変換開始して
変換終了割り込みを使おうと思っているのですが、MPLAB SIMで
IFSのビットが1になっても割り込み関数に入りません。
どうすればよいのか教えてください。
以下にコードを書きます。

#include <plib.h>

#pragma config JTAGEN = OFF
#pragma config FNOSC = FRCPLL
#pragma config POSCMOD = OFF // Primary Osc OFF
#pragma config FSOSCEN = OFF // Secondary Osc off
#pragma config FPLLMUL = MUL_20
#pragma config FPLLODIV = DIV_2
#pragma config FPBDIV = DIV_1
-- 省略--
AD1CON1 = 0x0004;
// AD1CON1 = 0x0044;
AD1CON2 = 0x0000;
AD1CON3 = 0x0101;
AD1CHS = 0x00000000;
AD1CSSL = 0x00000000;
AD1CON1SET = 0x8000;
IFS0CLR = 0x10000000;
IPC5SET = 0x1F000000;
IEC0SET = 0x10000000;

INTEnableSystemMultiVectoredInt();
-- 省略--
void __ISR(_ADC_VECTOR, ipl7) AD0Interrupt(void)
{
IFS0CLR = 0x10000000;
ADC_Value = ADC1BUF0;

使っているのはAD0のみでIO設定や基本的な事は出来ています。
変換終了のIFS0の28ビットが1になります。
それから、割り込み関数の2つ目の引数が分からないのですが。
よろしく、お願いします。

Re: ADC割り込みが出来ない 投稿者:PICは初心者 投稿日:2018/04/19(Thu) 09:07:20 No.1150

自己解決しました。
結果は正常に動いていました。
ただ、MPLAB SIMでPIC32MX1xxxをデバッグした場合、なぜかタイマー1以外のタイマーとADCの割り込みはデバッグできないようです。
たとえば、タイマー1とタイマー2を使った場合、プログラムを書き込んで動作させれば実際には動いていても、MPLAB SIMではTMR2が動いていなかったりします。
ただ、デバイスをPIC32MX3xxxとかにすると全てデバッグできます。
デバイスの選択ダイアログでMPLAB SIMが黄色になっているのはこういう事なのかなと思いました。
お騒がせしました。

- WebForum -