diff options
Diffstat (limited to 'firmware/drivers')
-rw-r--r-- | firmware/drivers/adc.c | 6 | ||||
-rw-r--r-- | firmware/drivers/button.c | 34 |
2 files changed, 36 insertions, 4 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; |