From 52d4a93fc722662575d55a874451da10ad1aca50 Mon Sep 17 00:00:00 2001 From: Stefan `Sec` Zehl Date: Mon, 4 Jul 2011 22:49:35 +0200 Subject: [PATCH] Impement "enter==ISP" on bootup as discussed --- firmware/applications/default.c | 5 +++++ firmware/basic/basic.h | 1 + firmware/basic/keyin.c | 26 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/firmware/applications/default.c b/firmware/applications/default.c index 9003cf5..efa50ed 100644 --- a/firmware/applications/default.c +++ b/firmware/applications/default.c @@ -5,6 +5,11 @@ void main_default(void) { systickInit(10); + + if(getInputRaw()==BTN_ENTER){ + ISPandReset(7); + }; + return; }; diff --git a/firmware/basic/basic.h b/firmware/basic/basic.h index 02c68d2..d343862 100644 --- a/firmware/basic/basic.h +++ b/firmware/basic/basic.h @@ -138,6 +138,7 @@ uint32_t GetVoltage(void); #define BTN_RIGHT (1<<3) #define BTN_ENTER (1<<4) uint8_t getInput(void); +uint8_t getInputRaw(void); //uuid.c uint32_t GetUUID32(void); diff --git a/firmware/basic/keyin.c b/firmware/basic/keyin.c index b0d6964..66e6fc3 100644 --- a/firmware/basic/keyin.c +++ b/firmware/basic/keyin.c @@ -36,3 +36,29 @@ uint8_t getInput(void) { return result; } +uint8_t getInputRaw(void) { + uint8_t result = BTN_NONE; + + if (gpioGetValue(RB_BTN3)==0) { + result += BTN_UP; + } + + if (gpioGetValue(RB_BTN2)==0) { + result += BTN_DOWN; + } + + if (gpioGetValue(RB_BTN4)==0) { + result += BTN_ENTER; + } + + if (gpioGetValue(RB_BTN0)==0) { + result += BTN_LEFT; + } + + if (gpioGetValue(RB_BTN1)==0) { + result += BTN_RIGHT; + } + + return result; +} +