provides interface AdcConfigure<const msp430adc12_channel_config_t*>;
}
implementation {
- /* TODO: The internal references are unsable, varying by more than 0.1V and
- * jumping around. The external reference of 2.50V seems stable.
+ /* We use the external reference because it is probably more accurate (see
+ * the circuit), and there is no arbitration for the voltage reference. With
+ * the external reference, we can ReadStream 4 data points in 420 us. Using
+ * the internal reference, this time increases significantly to over 18 ms.
*/
const msp430adc12_channel_config_t config = {
- inch: INPUT_CHANNEL_A0, // A2
-#if 0 /* internal references unstable */
- sref: REFERENCE_VREFplus_AVss,
- ref2_5v: REFVOLT_LEVEL_1_5, /* REFVOLT_LEVEL_2_5, */
-#else /* external reference is stable */
+ inch: INPUT_CHANNEL_A2,
sref: REFERENCE_VeREFplus_AVss,
- ref2_5v: REFVOLT_LEVEL_1_5,
-#endif
-#if 0 /* clock source doesn't seem to affect stability */
+ ref2_5v: REFVOLT_LEVEL_1_5, /* doesn't matter since external ref used */
adc12ssel: SHT_SOURCE_ADC12OSC,
adc12div: SHT_CLOCK_DIV_8,
-#else
- adc12ssel: SHT_SOURCE_ACLK,
- adc12div: SHT_CLOCK_DIV_1,
-#endif
sht: SAMPLE_HOLD_8_CYCLES,
sampcon_ssel: SAMPCON_SOURCE_ACLK,
sampcon_id: SAMPCON_CLOCK_DIV_1
};
- async command const msp430adc12_channel_config_t* AdcConfigure.getConfiguration()
+ async command const msp430adc12_channel_config_t*
+ AdcConfigure.getConfiguration()
{
return &config;
}