differential input adc board K64F Compatible hal freescale K64F
Fork of AnalogIn_Diff by
AnalohIn_Diff.cpp
- Committer:
- JimCarver
- Date:
- 2014-05-20
- Revision:
- 0:0f6f4be28e21
- Child:
- 1:7b36e4381d83
File content as of revision 0:0f6f4be28e21:
#include "mbed.h"
#include "AnalogIn_Diff.h"
AnalogIn_Diff::AnalogIn_Diff(int channel) : ch(channel) {
if(ch) BW_SIM_SCGC3_ADC1(1);
else BW_SIM_SCGC6_ADC0(1);
BW_ADC_SC1n_ADCH(ch, 0, 0x01);
BW_ADC_SC1n_DIFF(ch, 0, 1);
BW_ADC_CFG1_ADICLK(ch, 0);
BW_ADC_CFG1_MODE(ch, 3);
BW_ADC_CFG1_ADLSMP(ch, 0); //
BW_ADC_CFG1_ADIV(ch, 3);
BW_ADC_CFG1_ADLPC(ch, 0);
}
AnalogIn_Diff::~AnalogIn_Diff() { }
int16_t AnalogIn_Diff::read_16(void) {
BW_ADC_SC1n_ADCH(ch, 0, 0x01);
while(!BR_ADC_SC1n_COCO(ch, 0));
return(BR_ADC_Rn_D(ch, 0));
}
float AnalogIn_Diff::read(void) {
int16_t i;
float t;
BW_ADC_SC1n_ADCH(ch, 0, 0x01);
while(!BR_ADC_SC1n_COCO(ch, 0));
i = BR_ADC_Rn_D(ch, 0);
t = ((float) i);
t = t / 32768.0f;
return(t);
}
frederic blanc

ADC DIFF K64F