Merge remote-tracking branch 'origin/Elite_14re_demo' into Elite_14re_demo
This commit is contained in:
+1
-1
@@ -81,7 +81,7 @@ static int32_t DAC_to_realV(uint16_t DACcode)
|
||||
int32_t volt_32 = DACcode*10e7;
|
||||
int16_t coeff = (-1896), offset = 64893275;//*10e7
|
||||
|
||||
RealV = ((int32_t)(volt) - offset)/coeff;
|
||||
// RealV = ((int32_t)(volt) - offset)/coeff;
|
||||
|
||||
RealV = RealV/10e7;
|
||||
return RealV;
|
||||
|
||||
+1
@@ -590,6 +590,7 @@ static bool update_ins_rec_buffer();
|
||||
// ADC function
|
||||
static void ADC_write(uint8_t ADCin);
|
||||
static void ADC_read(uint8_t *ADCdata);
|
||||
static void ADC_test_read(uint8_t *ADCdata); // for auto shifting
|
||||
|
||||
static void ADCGainControl(uint8_t ADCLevel);
|
||||
static void ADCChannelSelect(uint8_t ADCChannel);
|
||||
|
||||
+29
-18
@@ -181,30 +181,41 @@ static void VT_Plot() {
|
||||
DecodeADCValue(ADCGain, ADC_CH_VOLT, spi_ADC_rxbuf);
|
||||
}
|
||||
|
||||
static uint8_t ADC_overflow(uint8_t gain, uint16_t rawdata){
|
||||
if(gain == 0){
|
||||
if( (0x5f75 <= rawdata) && (rawdata <= 0x5fb2) ){
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if(gain == 1){
|
||||
if( ((0x5fb2 < rawdata) && (rawdata < 0x60d6)) || ((0x5e56 < rawdata) && (rawdata < 0x5f75) )){
|
||||
return 1;
|
||||
};
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static void IT_Plot() {
|
||||
// ADC gain is don't care when measuring voltage
|
||||
uint8_t ADCGain = 1;
|
||||
uint8_t ADCGain = 0;
|
||||
|
||||
ADC_read(spi_ADC_rxbuf);
|
||||
for(int i=0 ; i<3 ; i++){
|
||||
ADCGain = i;
|
||||
|
||||
uint16_t rawdata = ((spi_ADC_rxbuf[0] & 0xff00 ) | (spi_ADC_rxbuf[1] & 0x00ff));
|
||||
// read ADC volt
|
||||
ADCGainControl(ADCGain);
|
||||
ADCChannelSelect(ADC_CH_CURRENT);
|
||||
CPUdelay(16000);
|
||||
ADC_read(spi_ADC_rxbuf);
|
||||
|
||||
// shift ADC gain level
|
||||
if( (0x5f75 <= rawdata) && (rawdata <= 0x5fb2) ){
|
||||
ADCGain = 0;
|
||||
uint16_t rawdata = ((uint16_t) (spi_ADC_rxbuf[0] << 8 )) | (spi_ADC_rxbuf[1]);
|
||||
|
||||
|
||||
if(ADC_overflow(ADCGain, rawdata)){
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if(((0x5fb2 < rawdata) && (rawdata < 0x60d6)) || ((0x5e56 < rawdata) && (rawdata < 0x5f75))) {
|
||||
ADCGain = 1;
|
||||
}
|
||||
else {
|
||||
ADCGain = 2;
|
||||
}
|
||||
|
||||
// read ADC volt
|
||||
ADCGainControl(ADCGain);
|
||||
ADCChannelSelect(ADC_CH_CURRENT);
|
||||
CPUdelay(16000);
|
||||
ADC_read(spi_ADC_rxbuf);
|
||||
|
||||
// decode ADC value and put it into notify buffer
|
||||
DecodeADCValue(ADCGain, ADC_CH_CURRENT, spi_ADC_rxbuf);
|
||||
|
||||
Reference in New Issue
Block a user