|
|
@@ -189,10 +189,6 @@ static int16_t read_adc_raw_data(uint8_t slot_id, ADC_Params *params) {
|
|
|
|
|
|
i2c_hal.read(ADC_TARGET_BASE_ADDRESS + slot_id);
|
|
|
while(!controllerRxPackage.complete);
|
|
|
-#ifdef DEBUG_ADC
|
|
|
- printf("ADC Read:: gRxADClen: %d, gRxADCcount: %d\n", controllerRxPackage.len, controllerRxPackage.count);
|
|
|
- printf("Bytes: 0x%02X 0x%02X 0x%02X (%d %d %d)\n", controllerRxPackage.packet[0], controllerRxPackage.packet[1], controllerRxPackage.packet[2], controllerRxPackage.packet[0], controllerRxPackage.packet[1], controllerRxPackage.packet[2]);
|
|
|
-#endif
|
|
|
uint8_t msb = controllerRxPackage.packet[0];
|
|
|
uint8_t lsb = controllerRxPackage.packet[1];
|
|
|
uint8_t config_adc_byte = controllerRxPackage.packet[2];
|
|
|
@@ -210,7 +206,7 @@ static int16_t read_adc_raw_data(uint8_t slot_id, ADC_Params *params) {
|
|
|
break;
|
|
|
case 16: // 16-bit
|
|
|
raw_adc = ((msb & 0b11111111) << 8) | lsb;
|
|
|
- if (raw_adc > 65536/2)
|
|
|
+ if (raw_adc > 65535/2)
|
|
|
raw_adc -= 65536;
|
|
|
break;
|
|
|
default:
|
|
|
@@ -219,41 +215,13 @@ static int16_t read_adc_raw_data(uint8_t slot_id, ADC_Params *params) {
|
|
|
}
|
|
|
|
|
|
#ifdef DEBUG_ADC
|
|
|
- printf("MSB: 0x%02X (%d)\n", msb, msb);
|
|
|
- printf("LSB: 0x%02X (%d)\n", lsb, lsb);
|
|
|
- printf("Config Byte response: 0x%02X \n", config_adc_byte);
|
|
|
+ printf("Raw ADC: %d, MSB: 0x%02X (%d) LSB: 0x%02X (%d) Config: 0x%02X\n", raw_adc, msb, msb, lsb, lsb, config_adc_byte);
|
|
|
#endif
|
|
|
return raw_adc / params->gain;
|
|
|
}
|
|
|
|
|
|
-/* Function to Convert ADC Reading to Voltage */
|
|
|
-static uint16_t adc_voltage(int16_t adc_value, ADC_Params *params) {
|
|
|
- uint16_t measured_voltage = 0;
|
|
|
- uint16_t LSB = 0;
|
|
|
- uint32_t max_adc_value = 1;
|
|
|
-
|
|
|
- switch (params->resolution) {
|
|
|
- case 12: // 12-bit
|
|
|
- max_adc_value = 4095;
|
|
|
- break;
|
|
|
- case 14: // 14-bit
|
|
|
- max_adc_value = 16383;
|
|
|
- break;
|
|
|
- case 16: // 16-bit
|
|
|
- max_adc_value = 65535;
|
|
|
- break;
|
|
|
- default:
|
|
|
- //printf("Error: Unknown ADC Resolution!\n");
|
|
|
- return 0;
|
|
|
- }
|
|
|
- measured_voltage = (((uint32_t)adc_value)) //* 2.7);
|
|
|
- //printf("Measured ADC voltage: %d\n", measured_voltage);
|
|
|
- return (uint16_t)measured_voltage;
|
|
|
-}
|
|
|
-
|
|
|
ADC_Interface adc_hal= {
|
|
|
.configure= adc_configure,
|
|
|
- .read_raw= read_adc_raw_data,
|
|
|
+ .read_voltage = read_adc_raw_data,
|
|
|
.is_ready= adc_is_ready,
|
|
|
- .get_voltage = adc_voltage
|
|
|
};
|