⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard.c

📁 加速度采集器。基于ATMega16L.AVRSTUIDIO4
💻 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(&currentTime,&currentImpact);
}
	  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -