mtiaopi 发表于 2024-3-28 19:46:38

哪位老师有空帮我看下*** 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:18:01

本帖最后由 乘风飞扬 于 2024-3-29 10:21 编辑

警告信息试试勾选这个选项

加定时器初始化后不能自动下载,则需要检查相关的代码,例如配套的中断函数是否正常,其他地方用到的寄存器有没有被覆盖性设置。

21cnsound 发表于 2024-3-29 10:45:55

1毫秒的定时中断,中断服务函数大概需要多少微秒执行完?
SEG_Disp();这个函数的内容贴一下,大家一起看看有没有影响相关的寄存器

mtiaopi 发表于 2024-3-29 21:00:30

本帖最后由 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:04:04

本帖最后由 mtiaopi 于 2024-3-29 21:10 编辑

乘风飞扬 发表于 2024-3-29 10:18
警告信息试试勾选这个选项

加定时器初始化后不能自动下载,则需要检查相关的代码,例如配套的中断函数是否 ...
警告的问题勾选了就没有了,请教下哪个选项是什么意思,在什么情况下需要勾选。

21cnsound 发表于 2024-3-29 21:59:43

mtiaopi 发表于 2024-3-29 21:00
21cnsound 发表于 2024-3-29 10:45
1毫秒的定时中断,中断服务函数大概需要多少微秒执行完?
SEG_Disp();这 ...

delay_ms(SEG_delay);    #应该主要是这个软件延时影响的,可修改定时中断时间和这个软件延时,让定时中断时间大于软件延时1ms以上(这个需要根据整体代码和测试来验证)

mtiaopi 发表于 2024-3-30 17:41:43

21cnsound 发表于 2024-3-29 21:59
delay_ms(SEG_delay);    #应该主要是这个软件延时影响的,可修改定时中断时间和这个软件延时,让定时中 ...

我直接注释掉了,不用它这个延时程序也能正常显示,不影响。
页: [1]
查看完整版本: 哪位老师有空帮我看下*** WARNING L27: INCOMPATIBLE INTERRUPT FRAME SIZE MODULE: .\COMM\stc_usb_cdc_32.LIB (usb) FRAME: 4 BYTES SAVED ON INTERRUPT