mbed library sources
Fork of mbed-src by
Revision 151:7a600087bf72, committed 2014-04-05
- Comitter:
- mbed_official
- Date:
- Sat Apr 05 17:45:06 2014 +0100
- Parent:
- 150:49699a7d7064
- Child:
- 152:3248c4875353
- Commit message:
- Synchronized with git revision 6a7b119b46ef99976a5e26f3ff0f8e8af916a24a
Full URL: https://github.com/mbedmicro/mbed/commit/6a7b119b46ef99976a5e26f3ff0f8e8af916a24a/
K64F - ADC mbed HAL - channels definition correction
Changed in this revision
targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/analogin_api.c | Show annotated file Show diff for this revision Revisions of this file |
--- a/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/analogin_api.c Fri Apr 04 10:45:08 2014 +0100 +++ b/targets/hal/TARGET_Freescale/TARGET_KPSDK_MCUS/TARGET_K64F/analogin_api.c Sat Apr 05 17:45:06 2014 +0100 @@ -27,12 +27,12 @@ static const PinMap PinMap_ADC[] = { {PTC2, ADC0_SE4b, 0}, {PTC8, ADC1_SE4b, 0}, - {PTC9, ADC0_SE5b, 0}, + {PTC9, ADC1_SE5b, 0}, {PTD1, ADC0_SE5b, 0}, - {PTC10, ADC0_SE6b, 0}, + {PTC10, ADC1_SE6b, 0}, {PTD5, ADC0_SE6b, 0}, - {PTC11, ADC0_SE7b, 0}, - {PTD7, ADC0_SE7b, 0}, + {PTC11, ADC1_SE7b, 0}, + {PTD6, ADC0_SE7b, 0}, {PTB0 , ADC0_SE8 , 0}, {PTB1 , ADC0_SE9 , 0}, {PTB2 , ADC0_SE12, 0}, @@ -41,9 +41,9 @@ {PTB10, ADC1_SE14, 0}, {PTB11, ADC1_SE15, 0}, {PTC1 , ADC0_SE15, 0}, - {PTE24, ADC0_SE17, 0}, {PTA17, ADC1_SE17, 0}, - {PTE25, ADC0_SE18, 0}, + //{PTE24, ADC0_SE17, 0}, //I2C pull up + //{PTE25, ADC0_SE18, 0}, //I2C pull up {NC , NC , 0} }; @@ -63,30 +63,29 @@ if ((bus_clock >> clkdiv) <= MAX_FADC) break; } - if (clkdiv == 4) {//Set max div - clkdiv = 0x7; + if (clkdiv == 4) { + clkdiv = 0x7; //Set max div } - + /* adc is enabled/triggered when reading. */ adc_hal_set_clock_source_mode(instance, (adc_clock_source_mode_t)(clkdiv >> 2)); adc_hal_set_clock_divider_mode(instance, (adc_clock_divider_mode_t)(clkdiv & 0x3)); adc_hal_set_reference_voltage_mode(instance, kAdcVoltageVref); adc_hal_set_resolution_mode(instance, kAdcSingleDiff16); adc_hal_configure_continuous_conversion(instance, false); + adc_hal_configure_hw_trigger(instance, false); /* sw trigger */ + adc_hal_configure_hw_average(instance, true); + adc_hal_set_hw_average_mode(instance, kAdcHwAverageCount4); + adc_hal_set_group_mux(instance, kAdcChannelMuxB); /* only B channels are avail */ - adc_group_mux_mode_t mode = (obj->adc & (1 << ADC_B_CHANNEL_SHIFT)) ? - kAdcChannelMuxB : kAdcChannelMuxA; - adc_hal_disable(instance, mode); - adc_hal_set_group_mux(instance, mode); - adc_hal_enable(instance, mode, (adc_channel_mode_t)(obj->adc & 0xF), false); + pinmap_pinout(pin, PinMap_ADC); } uint16_t analogin_read_u16(analogin_t *obj) { uint32_t instance = obj->adc >> ADC_INSTANCE_SHIFT; - adc_group_mux_mode_t mode = (obj->adc & (1 << ADC_B_CHANNEL_SHIFT)) ? - kAdcChannelMuxB : kAdcChannelMuxA; - adc_hal_enable(instance, mode, (adc_channel_mode_t)(obj->adc & 0xF), false); - while (!adc_hal_is_conversion_completed(instance, mode)); - return adc_hal_get_conversion_value(instance, mode); + /* sw trigger (SC1A) */ + adc_hal_enable(instance, 0, (adc_channel_mode_t)(obj->adc & 0xF), false); + while (!adc_hal_is_conversion_completed(instance, 0)); + return adc_hal_get_conversion_value(instance, 0); } float analogin_read(analogin_t *obj) {