Modify ADC test for calibration.

This commit is contained in:
YiChin
2020-08-11 15:11:50 +08:00
parent 05e953d6e2
commit cddafdffff
3 changed files with 19 additions and 9 deletions
@@ -532,7 +532,7 @@ static uint16_t ADC_CURRENT_AVG_calibration (uint8_t ADC_channel) {
#define count 10000
// Red light for start acquiring data
Elite_led_color(COLOR_MAGENTA);
Elite_led_color(COLOR_RED);
for(int i=0; i<count; i++){
ADCChannelSelect(ADC_channel);
@@ -22,15 +22,15 @@ static void LED_color(uint8_t bright, uint8_t red, uint8_t green, uint8_t blue)
static void Elite_led_color(uint16_t color){
switch (color) {
case COLOR_RED: {
LED_color(DARKLED, 0xFF, 0x00, 0x00);
LED_color(DARKLED, 0x50, 0x00, 0x00);
break;
}
case COLOR_ORANGE: {
LED_color(DARKLED, 0xFF, 0x58, 0x09);
LED_color(DARKLED, 0x50, 0x58, 0x09);
break;
}
case COLOR_YELLOW: {
LED_color(LIGHTLED, 0xFF, 0x80, 0x00);
LED_color(LIGHTLED, 0x50, 0x80, 0x00);
break;
}
case COLOR_GREEN: {
@@ -46,15 +46,15 @@ static void Elite_led_color(uint16_t color){
break;
}
case COLOR_MAGENTA: {
LED_color(DARKLED, 0xFF, 0x00, 0x80);
LED_color(DARKLED, 0x50, 0x00, 0x80);
break;
}
case COLOR_PURPLE: {
LED_color(DARKLED, 0xFF, 0x00, 0xFF);
LED_color(DARKLED, 0x50, 0x00, 0xFF);
break;
}
case COLOR_WHITE: {
LED_color(DARKLED, 0xCA, 0xFF, 0xFF);
LED_color(DARKLED, 0x50, 0xFF, 0xFF);
break;
}
case COLOR_BLACK: {
@@ -955,21 +955,25 @@ static void update_ZM_instruction(uint8 *ins) {
int32_t ADCRealValue = 0;
uint8_t CIS_buf[9] = {0};
uint16_t ADCValueAVG_RAW = 0;
bool AVG_done = 0;
switch(ins[3]) {
case IIN_ADC :{ // 0x00
IinADCGainControl(ins[4]);
AVG_done = 1;
break;
}
case VIN_ADC :{ // 0x01
VinADCGainControl(ins[4]);
AVG_done = 1;
break;
}
case VOUT_DAC :{ // 0x02
VoutGainControl(ins[4]);
AVG_done = 0;
break;
}
case HIGH_Z :{ // 0x03
case HIGH_Z :{ // 0x03
switch(ins[4]) {
case 0x00 :{
PIN15_setOutputValue(HIGH_Z_MODE, 0); // 0 => open high_z mode
@@ -983,14 +987,20 @@ static void update_ZM_instruction(uint8 *ins) {
break;
}
}
AVG_done = 0;
break;
}
default :{
AVG_done = 0;
break;
}
}
ADCValueAVG_RAW = ADC_CURRENT_AVG_calibration(ins[3]);
if (AVG_done) {
ADCValueAVG_RAW = ADC_CURRENT_AVG_calibration(ins[3]);
} else {
AVG_done = 0;
}
// ADCChannelSelect(ins[3]);
// CPUdelay(10);
// ADC_read(spi_ADC_rxbuf);