📄 keyboard.c
字号:
//Keyboard.c
#include "keyboard.h"
#include "sdTask.h"
//Controlled state
extern unsigned char mute;
extern unsigned char mainState;
extern unsigned short idleTime;
extern unsigned long currentTime;
extern unsigned short currentImpact;
extern unsigned char currentImpactUpdated; //bit 0 = LCD; bit 1 = ISD;
extern unsigned short impactCounter;
void keyboardRead(void)
{
static unsigned char keyPressed00 = 0xFF;
static unsigned char keyPressed0 = 0xFF;
unsigned char keyPressed;
unsigned char keyDetected;
static const unsigned char stringRUN[3] = "RUN";
static const unsigned char stringBlank3[3] = " ";
//1. Read PORTB
keyPressed = ~PINB&(PB_MUTE|PB_START|PB_CLR|PB_OFF);//Invert
//2. Key Detect
keyDetected = keyPressed&keyPressed0&(~keyPressed00);
keyPressed00 = keyPressed0;
keyPressed0 = keyPressed;
//3. Classify
if(keyDetected)
{
idleTime = 0; //clear idle timer when key Pressed
if(keyDetected&PB_MUTE)
{
mute = !mute;
if(mute)
lcdWriteChar(1,0,0x7C);
else
lcdWriteChar(1,0,' ');
}
if(keyDetected&PB_START)
{
if(mainState==0)
{
mainState = 1;
lcdWriteString(0,0,3,stringRUN);
}
else
{
mainState = 0;
lcdWriteString(0,0,3,stringBlank3);
}
}
if(keyDetected&PB_CLR)
{
if(!mainState)
clearState();
}
if(keyDetected&PB_OFF)
{
if(!mainState)
mainState = 2; //power off
// powerOff();
}
}//if keyDetected
}
void clearState(void)
{
currentTime = 0;
currentImpact = 0;
currentImpactUpdated = 3; //bit 0 = LCD; bit 1 = ISD;
impactCounter = 0;
sdEnQueue(¤tTime,¤tImpact);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -