马老师您好:您书里第9章的关于按键的程序有点不明白,请帮忙看看,谢谢!
马老师您好:您书理第9章的关于按键的程序有点不明白,您从百忙中抽空给指点一下迷津,谢谢您了!是关于读按键的一个地方,(我用的是ICCAVR )
#define key_state_00
#define key_state_11
#define key_state_22
unsigned char key_state;
unsigned char read_key(void)
{
unsigned char dey_press,key_return=0;
key_state=0; //这里我不明白,每到10ms后就执行一次read_key(),每一次都要把key_state清一下零吗?那后面的switch ...case语句不是永远都执行case key_state_0这句吗?因为key_state被清零了,我笨,就是不明白。。。
key_press=PINC;//按键连接的是C口的PC7
key_press&=0x80;
switch(key_state)
{
case key_state_0:
if(key_press!=0x80)key_state=key_state_1
.
.
.
}
}
void main()
{
while(1)
{
if(key_stime_ok) //10ms到,执行read_key()
{
key_stime_ok=0;
if(read_key())...
}
}
} 你仔细看过了吗?我是这样写的么?
static unsigned char key_state = 0;
同
static unsigned char key_state;
key_state = 0;
可完全不是一回事,仔细看C语言编程的书。 啊,仅是初始化一下,又学习了一个,谢谢马老师!
页:
[1]