|
请教一个问题,我现在使用PIC32MX795F512L的CN电平变化通知中断,进不了中断,强哥,帮忙看看,哪里的问题,使用查询法是可以的
#include
#include
#define uint8_t unsigned char
#define uint16_t unsigned int
#pragma config POSCMOD = HS //????
#pragma config FNOSC = PRIPLL //????
#pragma config FPLLIDIV = DIV_2 //???? 1:2
#pragma config FPLLMUL = MUL_20 //PPL ?? 1:20
#pragma config FPLLODIV = DIV_1 //???? 1:1
#pragma config FPBDIV = DIV_8 //????
#pragma config FWDTEN = OFF //?????
#pragma config ICESEL = ICS_PGx2 //????2
void CN16_Init(void);
void Delay_xmS(unsigned int i);
void __attribute__ ((vector(32)))__attribute__((interrupt(IPL4)))_CNInterrupt(void)
{
if(IFS1bits.CNIF == 1)
{
IFS1bits.CNIF = 0;
PORTAINV = 0x00ff;
}
}
main()
{
DDPCONbits.JTAGEN = 0;
CN16_Init();
while(1);
/*
{
if(IFS1bits.CNIF == 1)
{
Delay_xmS(30);
if(PORTDbits.RD7 == 0)
{
while(PORTDbits.RD7 == 0);
IFS1bits.CNIF = 0;
PORTAINV = 0x00ff;
}
}
}
*/
}
void CN16_Init(void)
{
TRISA = 0xff00; //RA0~RA7?????
PORTA = 0x00ff; //RA0~RA7?????
TRISD = 0xffff;
IFS1bits.CNIF = 0;
CNCONbits.ON = 1;
CNENbits.CNEN16 = 1;
CNPUEbits.CNPUE16 = 1;
//IPC6SET = 0x00140000;
// IPC6SET = 0x00030000;
INTCONbits.MVEC =1;
IEC1bits.CNIE = 1;
}
void Delay_xmS(unsigned int i) //????
{
unsigned int j;
for(;i>0;i--)
{
Nop();
for(j=0;j<255;j++)
{
Nop();
ClearWDT();
}
}
}
|
|