float getMCUInternalTemperature(void) { float TemperatureValue = adcToVolts(slowAdc.getAdcValueByHwChannel(ADC_CHANNEL_SENSOR)); TemperatureValue -= 0.760; // Subtract the reference voltage at 25°C TemperatureValue /= .0025; // Divide by slope 2.5mV TemperatureValue += 25.0; // Add the 25°C return TemperatureValue; }
static void printFullAdcReport(void) { for (int index = 0; index < EFI_ADC_SLOW_CHANNELS_COUNT; index++) { appendMsgPrefix(&logger); int hwIndex = getAdcHardwareIndexByInternalIndex(index); GPIO_TypeDef* port = getAdcChannelPort(hwIndex); int pin = getAdcChannelPin(hwIndex); int adcValue = getAdcValueByIndex(index); appendPrintf(&logger, " ch%d %s%d", index, portname(port), pin); appendPrintf(&logger, " ADC%d 12bit=%d", hwIndex, adcValue); float volts = adcToVolts(adcValue); appendPrintf(&logger, " v=%f", volts); appendMsgPostfix(&logger); scheduleLogging(&logger); } }
static void printFullAdcReport(void) { scheduleMsg(&logger, "fast %d slow %d", fastAdc.conversionCount, slowAdc.conversionCount); for (int index = 0; index < slowAdc.size(); index++) { appendMsgPrefix(&logger); adc_channel_e hwIndex = slowAdc.getAdcHardwareIndexByInternalIndex(index); GPIO_TypeDef* port = getAdcChannelPort(hwIndex); int pin = getAdcChannelPin(hwIndex); int adcValue = slowAdc.getAdcValueByIndex(index); appendPrintf(&logger, " ch%d %s%d", index, portname(port), pin); appendPrintf(&logger, " ADC%d 12bit=%d", hwIndex, adcValue); float volts = adcToVolts(adcValue); appendPrintf(&logger, " v=%f", volts); appendMsgPostfix(&logger); scheduleLogging(&logger); } }
static void processAdcPin(AdcConfiguration *adc, int index, const char *prefix) { adc_channel_e hwIndex = adc->getAdcHardwareIndexByInternalIndex(index); GPIO_TypeDef* port = getAdcChannelPort(hwIndex); int pin = getAdcChannelPin(hwIndex); int copy = stepCoutner; int c = 0; while (!isTimeForNextStep(copy)) { print("%s ch%d hwIndex=%d %s%d\r\n", prefix, index, hwIndex, portname(port), pin); int adcValue = adc->getAdcValueByIndex(index); // print("ADC%d val= %d%s", hwIndex, value, DELIMETER); float volts = adcToVolts(adcValue) * 2; print("v=%f adc=%d c=%d (hit 'n'<ENTER> for next step\r\n", volts, adcValue, c++); chThdSleepMilliseconds(300); } }
static void printFullAdcReport(Logging *logger) { scheduleMsg(logger, "fast %d slow %d", fastAdc.conversionCount, slowAdc.conversionCount); for (int index = 0; index < slowAdc.size(); index++) { appendMsgPrefix(logger); adc_channel_e hwIndex = slowAdc.getAdcHardwareIndexByInternalIndex(index); if(hwIndex != EFI_ADC_NONE && hwIndex != EFI_ADC_ERROR) { ioportid_t port = getAdcChannelPort("print", hwIndex); int pin = getAdcChannelPin(hwIndex); int adcValue = slowAdc.getAdcValueByIndex(index); appendPrintf(logger, " ch%d %s%d", index, portname(port), pin); appendPrintf(logger, " ADC%d 12bit=%d", hwIndex, adcValue); float volts = adcToVolts(adcValue); appendPrintf(logger, " v=%.2f", volts); appendMsgPostfix(logger); scheduleLogging(logger); } } }