Keil警告 搜索不到答案 求助大家
*** WARNING L27: INCOMPATIBLE INTERRUPT FRAME SIZEMODULE:.\Objects\KeyScan.obj (KeyScan)
FRAME: 2 BYTES SAVED ON INTERRUPT
*** WARNING L27: INCOMPATIBLE INTERRUPT FRAME SIZE
MODULE:.\Objects\STC32G_Timer_Isr.obj (STC32G_Timer_Isr)
FRAME: 2 BYTES SAVED ON INTERRUPT
KeyScan.c 中中断函数片断,屏蔽中断函数后少此警告另一个警告同样。请问这个警告的原因?如何解决。
使用中断13,以汇编代码转中断时也一样有警告。不明白警告出现的原因。
void common_isr() interrupt 40
{
unsigned char intf;
intf = P3INTF;
if (intf)
{
P3INTF = 0x00;
if (intf & 0x01)
{
//P3.0 口中断
}
if (intf & 0x02)
{
//P3.1 口中断
}
if (intf & 0x04)
{
//P3.2 口中断
}
if (intf & 0x08)
{
//P3.3 口中断
}
if (intf & 0x10)
{
//P3.4 口中断
BEEPON();
P3INTE = 0X00;//P34 端口中断禁用
switch(P4&0X1F)
{
case 0x1e:
KeyNum=4;
break;
case 0x1d:
KeyNum=8;
break;
case 0x1b:
KeyNum=12;
break;
case 0x17:
KeyNum=16;
break;
case 0x0f:
KeyNum=20;
break;
default:
KeyNum = NOKEY;
}
KeyTestFlag=1;
}
if (intf & 0x20)
{
//P3.5 口中断
BEEPON();
P3INTE = 0X00;//P35 端口中断禁用
switch(P4&0X1F)
{
case 0x1e:
KeyNum=3;
break;
case 0x1d:
KeyNum=7;
break;
case 0x1b:
KeyNum=11;
break;
case 0x17:
KeyNum=15;
break;
case 0x0f:
KeyNum=19;
break;
default:
KeyNum = NOKEY;
}
KeyTestFlag=1;
}
if (intf & 0x40)
{
//P3.6 口中断
BEEPON();
P3INTE = 0X00;//P36 端口中断禁用
switch(P4&0X1F)
{
case 0x1e:
KeyNum=2;
break;
case 0x1d:
KeyNum=6;
break;
case 0x1b:
KeyNum=10;
break;
case 0x17:
KeyNum=14;
break;
case 0x0f:
KeyNum=18;
break;
default:
KeyNum = NOKEY;
}
KeyTestFlag=1;
}
if (intf & 0x80)
{
//P3.7 口中断
BEEPON();
P3INTE = 0X00;//P34 端口中断禁用
switch(P4&0X1F)
{
case 0x1e:
KeyNum=1;
break;
case 0x1d:
KeyNum=5;
break;
case 0x1b:
KeyNum=9;
break;
case 0x17:
KeyNum=13;
break;
case 0x0f:
KeyNum=17;
break;
default:
KeyNum = NOKEY;
}
KeyTestFlag=1;
}
if(keybeeptime>0)//响铃变量清零,用于连续按键时声音的修正
{
keybeeptime=0;
}
}
}
void P0ISR(void) interrupt 37//P0中断
{
unsigned char intf;
intf = P0INTF;
if (intf)
{
P0INTF = 0x00;
if (intf & 0x01)
{
//P0.0 口中断
}
if (intf & 0x02)
{
}
if (intf & 0x04)
{
//P0.2 口中断
BEEPON();//
}
if (intf & 0x08)
{
//P0.3 口中断
}
if (intf & 0x10)
{
//P0.4 口中断
}
if (intf & 0x20)
{
//P0.5 口中断
}
if (intf & 0x40)
{
//P0.6 口中断
}
if (intf & 0x80)
{
//P0.7 口中断
}
}
}
更新使用了20230630的CDC库以后出现的这个警告。换回前一个版本的CDC库,没有这个警告。{:4_165:} wpppmlah 发表于 2023-11-10 14:51
更新使用了20230630的CDC库以后出现的这个警告。换回前一个版本的CDC库,没有这个警告。 ...
修改这个选项试试
感谢,已解决{:4_165:} usb.h中我记得有个函数的参数以前的库和现在的库就不一样,所以usb.h也得使用最新的才行,估计是更新usb.h和库的原因
页:
[1]