为什么 static 和 code 同时存在就程序死

2020-01-20 18:58发布

本帖最后由 dyjhy 于 2015-6-13 10:49 编辑

下面两段内容中,  红 {MOD}表示的, code 和static  不能同时存在,如果同时存在程序就死机,只要去掉任何一个程序都能正常运行。  不知道为什么?
                                                当然,static去掉的话,那一行要移到外面作全局变量,按键才会有效。


补充一下:板了上电,所有都正常,只要按下按键就会死机,我把key_scan里的所有东西注释掉,只留static那一条语句也会死机,这条也删掉的话就会正常。

/*7段共阴字形码表*/
const unsigned char code DB[]={   0x3F ,         /*0-----0*/
                                                         0x06 ,  /*1-----1*/
                                                         0x5B ,  /*2-----2*/
                                                         0x4F ,         /*3-----3*/
                                                         0x66 ,         /*4-----4*/
                                                         0x6D ,         /*5-----5*/
                                                         0x7D ,  /*6-----6*/
                                                         0x07 ,  /*7-----7*/
                                                         0x7F ,         /*8-----8*/
                                                         0x6F ,  /*9-----9*/
                                                         0x77 ,  /*A-----10*/
                                                         0x7C ,         /*B-----11*/
                                                         0x39 ,  /*C-----12*/
                                                         0x5E ,         /*D-----13*/
                                                         0x79 ,  /*E-----14*/
                                                         0x71 ,  /*F-----15*/
       
                                                         0xBF ,         /*0.-----16显示小数点就是原数+16*/
                                                         0x86 ,  /*1.-----17*/
                                                         0xDB ,  /*2.-----18*/
                                                         0xCF ,         /*3.-----19*/
                                                         0xE6 ,         /*4.-----20*/
                                                         0xED ,         /*5.-----21*/
                                                         0xFD ,  /*6.-----22*/
                                                         0x87 ,  /*7.-----23*/
                                                         0xFF ,         /*8.-----24*/
                                                         0xEF ,  /*9.-----25*/
                                                         
       
                                                         0x00 ,         /*关闭-----26*/
                                                         0x73 ,  /*P-----27*/
                                                         0x3E ,  /*U-----28*/
                                                         0x6E ,  /*Y-----29*/
                                                         0x76 ,  /*H-----30*/
                                                         0x38 ,   /*L-----31*/
                                                         0x40         /*'-'-----32*/                                          
                                                 }          ;

void key_scan (void)  //
{
static  unsigned int key_count;//SW1按键判断计数。
        if(SW1==0&&key_count==0)
        {
                sw1_time=0;
                key_count=1;                                  
               
        }
        if(SW1&&key_count) //按键放开
        {
                key_count=0;
                if(sw1_time>10000) key=3;
                else if(sw1_time>5000) key=2;
                else if(sw1_time>20) key=1;
        }
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
27条回答
bias
1楼-- · 2020-01-20 21:39
请问楼主要在子函数里面申明静态变量的目的是什么?
子函数里面的变量不能被函数外用到


你外部其他函数有给key_count赋值吧,那不就应该外全局吗
117433525
2楼-- · 2020-01-20 23:42
你的程序变量被code了,还能修改变量的值?
qq开始学单片机
3楼-- · 2020-01-21 03:21
 精彩回答 2  元偷偷看……
qq开始学单片机
4楼-- · 2020-01-21 06:52
楼主,const同时又code是什么节奏?
wind_zlc
5楼-- · 2020-01-21 09:42
qq开始学单片机 发表于 2015-6-13 00:06
楼主,const同时又code是什么节奏?

const是不是有些多余?
qq开始学单片机
6楼-- · 2020-01-21 11:00
wind_zlc 发表于 2015-6-13 00:26
const是不是有些多余?

如果是51,用code就行了,如果是其他单片机,用const

一周热门 更多>