|
爱科技、爱创意、爱折腾、爱极致,我们都是技术控
您需要 登录 才可以下载或查看,没有账号?立即注册
x
关注过我发帖的坛友应该知道,我爱玩单片机但编程很菜,今天有一个C编程的问题来请教大家,希望各位指点一下。
做过好多时钟,按键程序早就不是问题了,今天找出OLED0.96”的小屏幕准备做一个定时器,调试按键时突发奇想改变了一下参数的传递方法,结果没有成功,具体问题如下:
1.好用的函数:演示效果为N1每次按动数码显示+1变化
//===========================
//在程序开头定义的公用变量 uchar r;
void set()
{
if(N1==0)//选择键
{
delay_1ms(25);
if(N1==0)
{
r++;
if(r>7)
{
r=0;
}
while(!N1);
}
}
}
//====主函数===
main()
{
while(1)
{
set();
Display_convert(r);//数码管显示函数
}}
///---------此处是分割线------------------------------------------///
2.好用的函数,演示效果同上:
//====主函数==========
main()
{
uchar z;
while(1)
{
if(N1==0)//选择键
{
delay_1ms(25);
if(N1==0)
{
z++;
if(z>7)
{
z=0;
}
Display_convert(z);
while(!N1);
}
}
}}
///-----------以下是有问题的函数---------------------------------///
3.不好用的函数,演示效果为数码管显示不变、键值参数没有被传递
uchar set()
{
uchar r
if(N1==0)//选择键
{
delay_1ms(25);
if(N1==0)
{ led =~led;//此处临时加一个灯演示按键是否有效
r++;
if(r>7)
{
r=0;
}
while(!N1);
}
}
return(r);
}
//====主函数========
main()
{
uchar z;
while(1)
{
z=set();
Display_convert(z); //数码管显示无变化但led指示灯变化是正常的
}}
|
|