#include
//定义ADC配置参数 const uint8_t ADC_CONFIG = (1 << ADEN) | (1 << ADSC) | (1 << ADPS2) | (1 << ADPS0);
int main(void) { //设置引脚为输入 DDRB &= ~(1 << PB0); PORTB |= (1 << PB0); //设置上拉电阻
//设置ADC的输入通道和配置参数 ADMUX |= (1 << MUX0); //选择ADC0输入通道 ADCSRA |= ADC_CONFIG;
//读取ADC的值并输出 while (1) { ADCSRA |= (1 << ADSC); //启动ADC转换 while (ADCSRA & (1 << ADSC)) {} //等待转换完成 uint16_t result = ADC; //读取ADC结果 if (result == 0xFFF) { //如果读数错误 //进行错误处理 } else { //将读取的结果转换为电压值并输出 float voltage = (float)result * 5.0 / 1023.0; //输出格式为"Voltage: xx.xxV" printf("Voltage: %.2fV\n", voltage); } _delay_ms(500); } }