哪位老师有空帮我看下*** WARNING L27: INCOMPATIBLE INTERRUPT FRAME SIZE MODULE: .\COMM\stc_usb_cdc_32.LIB (usb) FRAME: 4 BYTES SAVED ON INTERRUPT
//void Timer0_Isr(void) interrupt 1//{
// Time_Count++;
// Show_Tab=20;
// Show_Tab=20;
// Show_Tab=a/10%10;
// Show_Tab=a/1%10;
// Show_Tab=b/10%10;
// Show_Tab=b/1%10;
// Show_Tab=Time_Count/100%10;
// Show_Tab=Time_Count/10%10;
// SEG_Disp();
// if(Time_Count==60)
// {
// Time_Count=0;
// b++;
// }
// if(b==60)
// {
// b=0;
// a++;
// }
// if(a==24)
// a=0;
//}
定时器0的中断程序,把这个注释掉就没有这个警告,这个警告是什么意思
void Timer0_Init(void) //1毫秒@24.000MHz
{
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0x30; //设置定时初始值
TH0 = 0xF8; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
}
这个定时器一初始化就不能自动下载程序,把初始化注释掉就可以
本帖最后由 乘风飞扬 于 2024-3-29 10:21 编辑
警告信息试试勾选这个选项
加定时器初始化后不能自动下载,则需要检查相关的代码,例如配套的中断函数是否正常,其他地方用到的寄存器有没有被覆盖性设置。 1毫秒的定时中断,中断服务函数大概需要多少微秒执行完?
SEG_Disp();这个函数的内容贴一下,大家一起看看有没有影响相关的寄存器 本帖最后由 mtiaopi 于 2024-3-29 21:38 编辑
21cnsound 发表于 2024-3-29 10:45
1毫秒的定时中断,中断服务函数大概需要多少微秒执行完?
SEG_Disp();这个函数的内容贴一下,大家一起看看 ...
void SEG_Disp(void)
{
P0=SEGCOM_Tab;
P2=SEG_Tab];
delay_ms(SEG_delay);
num++;
if (num>7)
num=0;
}
问题找到了,delya_ms(SEG_delay)这一行注释掉就可以了,是不是这一行的延时时间也是1ms,跟中断冲突了,但是为什么影响的是USB自动下载功能。 本帖最后由 mtiaopi 于 2024-3-29 21:10 编辑
乘风飞扬 发表于 2024-3-29 10:18
警告信息试试勾选这个选项
加定时器初始化后不能自动下载,则需要检查相关的代码,例如配套的中断函数是否 ...
警告的问题勾选了就没有了,请教下哪个选项是什么意思,在什么情况下需要勾选。 mtiaopi 发表于 2024-3-29 21:00
21cnsound 发表于 2024-3-29 10:45
1毫秒的定时中断,中断服务函数大概需要多少微秒执行完?
SEG_Disp();这 ...
delay_ms(SEG_delay); #应该主要是这个软件延时影响的,可修改定时中断时间和这个软件延时,让定时中断时间大于软件延时1ms以上(这个需要根据整体代码和测试来验证) 21cnsound 发表于 2024-3-29 21:59
delay_ms(SEG_delay); #应该主要是这个软件延时影响的,可修改定时中断时间和这个软件延时,让定时中 ...
我直接注释掉了,不用它这个延时程序也能正常显示,不影响。
页:
[1]