Add keyin.c, generic joystick input function
This commit is contained in:
parent
2b73b15157
commit
4cd3460138
1
Makefile
1
Makefile
|
@ -8,6 +8,7 @@ OBJS = main.o
|
|||
VPATH +=
|
||||
OBJS +=
|
||||
OBJS += basic/basic.o basic/reinvoke_isp.o basic/delayms.o basic/voltage.o
|
||||
OBJS += basic/keyin.o
|
||||
OBJS += eeprom/eeprom.o
|
||||
LIBS += core/libcore.a lcd/liblcd.a modules/libmodules.a
|
||||
|
||||
|
|
|
@ -121,7 +121,7 @@ void rbInit(void);
|
|||
// reinvoke_isp.c
|
||||
void ReinvokeISP(void);
|
||||
void EnableWatchdog(uint32_t ms);
|
||||
void EnterISP(void);
|
||||
void ISPandReset(int delay);
|
||||
|
||||
// delayms.c
|
||||
void delayms(uint32_t ms);
|
||||
|
@ -130,4 +130,13 @@ void delayms(uint32_t ms);
|
|||
void VoltageCheck(void);
|
||||
uint32_t GetVoltage(void);
|
||||
|
||||
// keyin.c
|
||||
#define BTN_NONE 0
|
||||
#define BTN_UP (1<<0)
|
||||
#define BTN_DOWN (1<<1)
|
||||
#define BTN_LEFT (1<<2)
|
||||
#define BTN_RIGHT (1<<3)
|
||||
#define BTN_ENTER (1<<4)
|
||||
uint8_t getInput(void);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
#include <sysinit.h>
|
||||
#include "basic/basic.h"
|
||||
|
||||
uint8_t getInput(void) {
|
||||
uint8_t result = BTN_NONE;
|
||||
|
||||
if (gpioGetValue(RB_BTN3)==0) {
|
||||
while(gpioGetValue(RB_BTN3)==0);
|
||||
result += BTN_UP;
|
||||
}
|
||||
|
||||
if (gpioGetValue(RB_BTN2)==0) {
|
||||
while(gpioGetValue(RB_BTN2)==0);
|
||||
result += BTN_DOWN;
|
||||
}
|
||||
|
||||
if (gpioGetValue(RB_BTN4)==0) {
|
||||
while(gpioGetValue(RB_BTN4)==0);
|
||||
result += BTN_ENTER;
|
||||
}
|
||||
|
||||
if (gpioGetValue(RB_BTN0)==0) {
|
||||
while(gpioGetValue(RB_BTN0)==0);
|
||||
result += BTN_LEFT;
|
||||
}
|
||||
|
||||
if (gpioGetValue(RB_BTN1)==0) {
|
||||
while(gpioGetValue(RB_BTN1)==0);
|
||||
result += BTN_RIGHT;
|
||||
}
|
||||
|
||||
if (result == (BTN_LEFT+BTN_UP+BTN_ENTER)){ /* Development hack */
|
||||
ISPandReset(5);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
Loading…
Reference in New Issue