|
本帖最后由 dyjhy 于 2015-6-13 10:49 编辑
下面两段内容中, 红色表示的, 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;
}
} |
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|