diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/drivers/adc.c | 6 | ||||
-rw-r--r-- | firmware/drivers/button.c | 34 | ||||
-rw-r--r-- | firmware/export/button.h | 10 |
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 | ||