标题: 单片机中出现这种12-131.c(76): error C202: 'i': undefined identifier [打印本页]

作者: 罗小响    时间: 2020-12-14 01:08
标题: 单片机中出现这种12-131.c(76): error C202: 'i': undefined identifier
void int_1()  interrupt 2
{       
unsigned char temp1,temp2,temp3,temp4,temp5;
       
temp1=P2;temp2=t0;temp3=t1;temp4=TH1;temp5=TL1;

for(i=0;i<5;i++)
   {
    g=0;
    delay1s();
    g=1;
    delay1s();
   }
P2=temp1;t0=temp2;t1=temp3;TH1=temp4;TL1=temp5;
}
想写个灯闪烁的中断程序,一编译有定义问题是为啥


作者: 罗小响    时间: 2020-12-14 01:08
求各位大佬指点指点
作者: npn    时间: 2020-12-14 06:35
unsigned char i 哪里去了
作者: rayin    时间: 2020-12-14 21:50
中断处理子程序中缺少一个unsigned char i;的声明局部变量的语句。
编译器的 'i': undefined identifier意思就是说i变量需要定义,
如果程序中有全局变量i,那么程序很容易跑出出现你意想不到的错误。
作者: cheney03    时间: 2020-12-15 08:58
变量“i”没定义,C语言规定变量先定义后使用。
作者: HEIJULY    时间: 2020-12-15 11:55
试试 for(char i=0;i<5;i++),或者在函数里定义一个局部变量 char i;
作者: 1714461639    时间: 2020-12-15 15:22
变量i需要定义一下,要不然会报错
作者: lanyu8388    时间: 2020-12-15 18:18
i 变量在这段中断函数中没有定义,在这个中断函数里定义句,unsigned char i=0; 建议你看补一下局部变量和全局部量的使用域,就会明白了;在你的完整程序里可能有定义过些i局部变量,只是能误认为已经定义了。
作者: zyang122    时间: 2020-12-15 18:23
把工程发给我,我帮你解决
作者: zyang122    时间: 2020-12-15 18:27
你的变量i没有定义,  定义一个全部变量就可以了,如   unsigned char i=0;  就可以了
作者: miss12356    时间: 2020-12-15 20:29
i需要提前定义
作者: miss12356    时间: 2020-12-15 20:30
for循环的i也是需要提前定义的
作者: 1255230    时间: 2020-12-15 20:57
变量i没有定义
作者: wujin0731    时间: 2020-12-15 21:55
没有事前定义
作者: Hooligian    时间: 2020-12-16 16:41
unsigned char i没写,你的i就没有定义,就相当于多了不属于程序里的东西,程序识别不出来报错很正常,你改一下就可以了。
作者: 3021174758    时间: 2023-4-28 15:38
i没有定义
作者: 1912109807    时间: 2023-4-28 19:09
i未定义




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1