summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/button.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index 9e00efc0ec..3e35e0eea4 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -170,17 +170,18 @@ int button_get(void)
170 int portc = PCDR; 170 int portc = PCDR;
171 int btn = 0; 171 int btn = 0;
172 172
173 if ( portc & 1 ) 173 /* buttons are active low */
174 if ( !(portc & 1) )
174 btn |= BUTTON_LEFT; 175 btn |= BUTTON_LEFT;
175 if ( portc & 2 ) 176 if ( !(portc & 2) )
176 btn |= BUTTON_MENU; 177 btn |= BUTTON_MENU;
177 if ( portc & 4 ) 178 if ( !(portc & 4) )
178 btn |= BUTTON_RIGHT; 179 btn |= BUTTON_RIGHT;
179 if ( portc & 8 ) 180 if ( !(portc & 8) )
180 btn |= BUTTON_PLAY | BUTTON_UP; 181 btn |= BUTTON_PLAY | BUTTON_UP;
181 if ( porta & 0x20 ) 182 if ( !(porta & 0x20) )
182 btn |= BUTTON_ON; 183 btn |= BUTTON_ON;
183 if ( porta & 0x800 ) 184 if ( !(porta & 0x800) )
184 btn |= BUTTON_STOP | BUTTON_DOWN; 185 btn |= BUTTON_STOP | BUTTON_DOWN;
185 186
186 return btn; 187 return btn;