summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/drivers/adc.c6
-rw-r--r--firmware/drivers/button.c34
-rw-r--r--firmware/export/button.h10
3 files changed, 45 insertions, 5 deletions
diff --git a/firmware/drivers/adc.c b/firmware/drivers/adc.c
index bb8242e37f..fd7916622c 100644
--- a/firmware/drivers/adc.c
+++ b/firmware/drivers/adc.c
@@ -171,6 +171,8 @@ unsigned char adc_scan(int channel)
171 171
172 CS_HI; 172 CS_HI;
173 173
174 adcdata[channel] = data;
175
174 return data; 176 return data;
175} 177}
176 178
@@ -186,7 +188,7 @@ static void adc_tick(void)
186 if(++adc_counter == HZ) 188 if(++adc_counter == HZ)
187 { 189 {
188 adc_counter = 0; 190 adc_counter = 0;
189 adcdata[ADC_BATTERY] = adc_scan(ADC_BATTERY); 191 adc_scan(ADC_BATTERY);
190 } 192 }
191} 193}
192 194
@@ -201,8 +203,6 @@ void adc_init(void)
201 GPIO_OUT &= ~0x00400000; /* CLK low */ 203 GPIO_OUT &= ~0x00400000; /* CLK low */
202 204
203 tick_add_task(adc_tick); 205 tick_add_task(adc_tick);
204
205 adcdata[3] = adc_scan(3);
206} 206}
207 207
208#elif CONFIG_CPU == TCC730 208#elif CONFIG_CPU == TCC730
diff --git a/firmware/drivers/button.c b/firmware/drivers/button.c
index 1a0aeceb06..cd4492315d 100644
--- a/firmware/drivers/button.c
+++ b/firmware/drivers/button.c
@@ -351,7 +351,7 @@ static int button_read(void)
351 351
352#if CONFIG_KEYPAD == IRIVER_H100_PAD 352#if CONFIG_KEYPAD == IRIVER_H100_PAD
353 353
354 data = adc_scan(0); 354 data = adc_scan(ADC_BUTTONS);
355 355
356 if (data < 0x80) 356 if (data < 0x80)
357 if (data < 0x30) 357 if (data < 0x30)
@@ -377,6 +377,38 @@ static int button_read(void)
377 if (data < 0xf0) 377 if (data < 0xf0)
378 btn = BUTTON_REC; 378 btn = BUTTON_REC;
379 379
380 data = adc_scan(ADC_REMOTE);
381
382 if (data < 0x74)
383 if (data < 0x40)
384 if (data < 0x20)
385 if(data < 0x10)
386 btn = BUTTON_RC_STOP;
387 else
388 btn = BUTTON_RC_VOL_DOWN;
389 else
390 btn = BUTTON_RC_VOL;
391 else
392 if (data < 0x58)
393 btn = BUTTON_RC_VOL_UP;
394 else
395 btn = BUTTON_RC_BITRATE;
396 else
397 if (data < 0xb0)
398 if (data < 0x88)
399 btn = BUTTON_RC_REC;
400 else
401 btn = BUTTON_RC_SOURCE;
402 else
403 if (data < 0xd8)
404 if(data < 0xc0)
405 btn = BUTTON_RC_FF;
406 else
407 btn = BUTTON_RC_MENU;
408 else
409 if (data < 0xf0)
410 btn = BUTTON_RC_REW;
411
380 data = GPIO1_READ; 412 data = GPIO1_READ;
381 if ((data & 0x20) == 0) 413 if ((data & 0x20) == 0)
382 btn |= BUTTON_ON; 414 btn |= BUTTON_ON;
diff --git a/firmware/export/button.h b/firmware/export/button.h
index e978f9d426..5b76e50b56 100644
--- a/firmware/export/button.h
+++ b/firmware/export/button.h
@@ -66,7 +66,15 @@ bool button_hold(void);
66#define BUTTON_UP 0x0010 66#define BUTTON_UP 0x0010
67#define BUTTON_DOWN 0x0020 67#define BUTTON_DOWN 0x0020
68 68
69#define BUTTON_RC_ON (BUTTON_REMOTE | BUTTON_ON) 69#define BUTTON_RC_ON (BUTTON_REMOTE | 0x00010000)
70#define BUTTON_RC_STOP (BUTTON_REMOTE | 0x00020000)
71#define BUTTON_RC_VOL (BUTTON_REMOTE | 0x00040000)
72#define BUTTON_RC_BITRATE (BUTTON_REMOTE | 0x00200000)
73#define BUTTON_RC_REC (BUTTON_REMOTE | 0x00400000)
74#define BUTTON_RC_SOURCE (BUTTON_REMOTE | 0x00800000)
75#define BUTTON_RC_MENU (BUTTON_REMOTE | 0x01000000)
76#define BUTTON_RC_FF (BUTTON_REMOTE | 0x02000000)
77#define BUTTON_RC_REW (BUTTON_REMOTE | 0x04000000)
70 78
71#elif CONFIG_KEYPAD == RECORDER_PAD 79#elif CONFIG_KEYPAD == RECORDER_PAD
72 80