单片机 PIC16886F886 用中断开启AD转换,并且用TMR2中断去显示,
中断有问题么?
测量显示不对,且显示值跳
/***************** 中断 *********************/
void interrupt ISR(void)
{
if(ADIF)
{
CCP2IF=0;ADIF=0;
if(k<40)
re[k++]=(ADRESH << 8) | ADRESL;
}
if (TMR2IE && TMR2IF) // Is the Timer2 interrupt ?
{
TMR2IF = 0;
display_show();
}
}
void display_show (void)
{
SMGWZ++;
if(SMGWZ>4)
SMGWZ=0;
switch(SMGWZ)
{
case 0: led1w(TABLE[SMG[0]],0x1);break;
case 1: led1w(TABLE[SMG[1]],0x2);break;
case 2: led1w(TABLE[SMG[2]],0x4);break;
case 3: led1w(TABLE[SMG[3]],0x8);break;
case 4: led1w(LED,0x10);break;
default: SMGWZ=0;break;
}
} |