Sveiki, pagelbėkit su megos ADC, jau antrą dieną nesugebu jo paleisti cikle.. ADC sukonfiginau vienetinio keitimo režime, ADC5 kanalas, su pertraukimais. Problema - ADC "suveikia" tik vieną kartą, po to į įtampos pokyčius ant pino nereaguoja, visą laiką nusiskaito tas pats rezultatas. Jeigu tą patį piną nuskaityti skaitmeniniame režime, tai jis gražiai vartosi ir su pull´up´u ir be jo. Pinas kaba laisvas, su pincetu arba įžeminu, arba į pliusą; skaitmeniniame režime suveikia o ADC režime - ne... kodas toks: ADC5_DDR = 0; //configure ADC5 as input ADC5 = 0; ADMUX=0x45 ; //0100.0101 - Vcc ref, ADC5 DIDR0 = 0x20; // isj. skaitmenine dali ADCSRA =0x8E; //1000.1110/ int e,nable div. factor 64 while(1){ WriteByteToDOG(0x01, DOG_CMD); //clrscr ADCSRA |= _BV(ADSC); //start conversion while (!F_ADCIRQ); F_ADCIRQ = 0; ADCResult = (ADCH<<8)|ADCL; //ADCResult = ADC5_PIN; cia nuskaitymas skaitmeniame rezime, veikia WriteShortToDisplay(ADCResult); ADCResult = 0; _delay_ms(1000); LED1 = !LED1; }//while 1 }// main pertraukimas labai paprastas sprendžiant pagal LED mirksėjimą, jis vyksta: ISR (ADC_vect){ //ADCSRA |= 0x10; F_ADCIRQ = 1; LED=!LED; } Displėjaus duomenys pajungti per žemesnyjį PORTC ketvertuką, todėl išvedimo funkcijos daro tokias operacijas: duomenų išvedimui į displėjų: DDRC|=0x0F; //cause direction is changed to read data PORTC = (PORTC & 0xF0) | (BitsToSend & 0x0F); //do not touch upper niblle of portc displėjaus statuso nuskaitymui: DDRC &= 0xF0; // PC0..PC3 - input _delay_us(10); ... ... status=PINC; būčiau dėkingas už bet kokią pagalbą...