📄 getkey.c
字号:
#include<avr/io.h>
#include "head.h"
void display (uint8_t c,uint8_t d);
extern uint8_t key;
void adjtime (void);
void adjalm (void);
////////////////////////////////////////////
/*
作用: 获取键盘输入,分为两种模式,一种是等待用户输入,用户不输入就一直等待
一种是不等待模式,没有输入则转入下一个语句。
———————————————————————————————————————————————————————————
参数:
t:等待时显示的内容,当不带带时,此参数随意
w:是否等待
————————————————————————————————————————————————————————————
返回:没有
————————————————————————————————————————————————————————————
全局变量:key
*/
///////////////////////////////////////////
void getkey (uint8_t n,uint8_t w)
{
uint8_t qut=0;
key=0;
if (w==WAIT) //等待模式,没有键按下就不断循环
while(qut==0)
{
switch ((KEYCODE))
{
case 0xD0: key=OK; while((KEYCODE)==0xD0); qut=1;break; //改变数据
case 0x70: key=CHANGE; while((KEYCODE)==0x70); qut=1;break; //确认改动
default:{}break;
}
switch (n) //根据需要选择要显示的区域,用在等待模式中
{
case HOUR_TIME: display(SHOW_HOUR,TIME);break;
case HOUR_ALARM: display(SHOW_HOUR,ALARM);break;
case MINUTE_TIME: display(SHOW_MINUTE,TIME);break;
case MINUTE_ALARM: display(SHOW_MINUTE,ALARM);break;
case SECOND_ALARM: display(SHOW_SECOND,ALARM);break;
default:{} break;
}
}
else //不等待模式,没有键按下就跳过
switch ((KEYCODE))
{
case 0xE0: adjtime(); break; //起动调时
case 0xB0: adjalm(); break; //起动调闹钟
default : {} break;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -