- Код: Выделить всё • Развернуть
unsigned char read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCH;
}
.....
void main(void){
...
while(1){
PORTC = read_adc(0);
}
}
порт C увешал светодиодами
от регулируемого источника питания подаю напряжение на GND и PA0 , мультиметр показывает 1.6 вольта. подключил к мк, все светодиоды загорелись и мк завис. попробовал напряжение подать через сопротивление 1кОм, все ок, меняю напряжение, диоды меняются, одно но сопротивление перегревается. и не совсем понятно как теперь по этим светодиодам определить какое напряжение.
когда подаю 1.6в загораются первые 4 светодиода, т.е. 0b00001111 , подаю 20в загораются 0b00111111, причем первые 3 мигают как сумасшедшие. может я что делаю не так? или так и должно быть ?