Make voltage converter

This commit is contained in:
Elp03 2024-04-09 15:54:42 +02:00
parent b0c0efa4fc
commit ee6e6a6d07

View File

@ -36,11 +36,18 @@ uint16_t ADC0_read(void) {
uint16_t thermistor_voltage_read() { uint16_t thermistor_voltage_read() {
/* Gets value for the diode */ /* Gets value for the diode */
ADC0.MUXPOS = 0x03; ADC0.MUXPOS = 0x03;
uint8_t adc_val = ADC0_read(); uint16_t adc_val = ADC0_read();
return adc_val; return adc_val;
} }
uint16_t external_voltage_read(){
ADC0.MUXPOS = 0x02;
uint16_t adc_val = ADC0_read();
return adc_val;
}
uint16_t internal_voltage_read() { uint16_t internal_voltage_read() {
/* Gets value for the internal voltage reffreance*/ /* Gets value for the internal voltage reffreance*/
@ -49,3 +56,13 @@ uint16_t internal_voltage_read() {
return adc_val*10; return adc_val*10;
} }
uint16_t convert_to_voltage(uint16_t adc_val){
uint16_t min_in= 0;
uint16_t min_out= 0;
uint16_t max_in= 1023;
uint16_t max_out= 3.3;
uint16_t voltage = (adc_val-min_in)*(max_out-min_out)/(max_in-min_in) + min_out;
return voltage;
}