diff options
author | Brandon Low <lostlogic@rockbox.org> | 2006-03-09 01:36:22 +0000 |
---|---|---|
committer | Brandon Low <lostlogic@rockbox.org> | 2006-03-09 01:36:22 +0000 |
commit | ca9e8b6cf5d1bdadf0040eb2f4baec1cbd5e3d7a (patch) | |
tree | 4b3253906eb2397fe80ac747f6873878fc11861a /firmware/drivers/adc.c | |
parent | c24569feeedc9e6bda80b84d9dd6398f1bb9c586 (diff) | |
download | rockbox-ca9e8b6cf5d1bdadf0040eb2f4baec1cbd5e3d7a.tar.gz rockbox-ca9e8b6cf5d1bdadf0040eb2f4baec1cbd5e3d7a.zip |
Use an 8 bit ADC read for battery reading on ipod, that provides better than centivolt precision any way, also enable charging, it seems to detect fine when charging by USB
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8966 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/drivers/adc.c')
-rw-r--r-- | firmware/drivers/adc.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/firmware/drivers/adc.c b/firmware/drivers/adc.c index e5dd4c1e53..a75f788417 100644 --- a/firmware/drivers/adc.c +++ b/firmware/drivers/adc.c | |||
@@ -298,12 +298,17 @@ static struct adc_struct adcdata[NUM_ADC_CHANNELS] IDATA_ATTR; | |||
298 | * a 13 bit value corresponding to 0-5.4v, the resulting range is 13FB-17FA, | 298 | * a 13 bit value corresponding to 0-5.4v, the resulting range is 13FB-17FA, |
299 | * representing 3.1-5.4v */ | 299 | * representing 3.1-5.4v */ |
300 | static unsigned short ten_bit_subtractor(unsigned short data) { | 300 | static unsigned short ten_bit_subtractor(unsigned short data) { |
301 | return (data<<2)+0x13FB; | 301 | return (data<<2)+0x4FB; |
302 | } | 302 | } |
303 | 303 | ||
304 | static unsigned short _adc_scan(struct adc_struct *adc) | 304 | static unsigned short _adc_scan(struct adc_struct *adc) |
305 | { | 305 | { |
306 | unsigned short data = pcf50605_a2d_read(adc->channelnum); | 306 | unsigned short data; |
307 | |||
308 | /* ADCC1, 8 bit, start */ | ||
309 | pcf50605_write(0x2f, 0x80 | (adc->channelnum << 1) | 0x1); | ||
310 | data = pcf50605_read(0x30); /* ADCS1 */ | ||
311 | |||
307 | if (adc->conversion) { | 312 | if (adc->conversion) { |
308 | data = adc->conversion(data); | 313 | data = adc->conversion(data); |
309 | } | 314 | } |