logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

ATMEGA 128 problem z ADC. Każdy pomiar wskazuje 1023.

albercik506 19 Lut 2011 23:44 1768 4
REKLAMA
  • #1 9175780
    albercik506
    Poziom 10  
    witam wszystkich,
    przeczytałem już dość dużo różnych tematów odnośnie przetwornika ADC jednak mam mały problem, mianowicie każdy pomiar wskazuje 1023 i nie wiem co z tym zrobić
    poniżej kod programu, może ktoś znajdzie jakiś błąd
    
    #define F_CPU 1600000UL
    
    void adc_init(void)
    {
       PORTF = 0x00;
    	DDRF = 0x00;
    
       ADMUX = 0x40;      // VREF=01 | DLAR=0 | MUX=00000
    	ADCSRA = 0x87;      // ADEN=1 | ADSC=0 | ADFR=0 | ADIE=0 | ADPS=111
    }
    
    int main(void)
    {
            unsigned int pomiar_adc;
    	char text[10];
    
    for (;;)
    	{
    		
    adc_init();
    if (bit_is_clear(PINC,PC1))
    		{
    			
    			ADCSRA |= _BV(ADSC);
    			while (bit_is_set(ADCSRA,ADSC));
    			pomiar_adc = ADCW;
    			itoa (pomiar_adc,text,10);
    			LCD_Clear();			
    			LCD_WriteText(text);
    		}
    	}	// koniec pętli for
    
    return 0;
    }
    

    AVCC połączone z VCC
    AREF przez kondensator 100nF do masy

    EDIT
    inicjalizacja adc była wywołana - podałem fragment kodu i przypadkiem pominąlem ;-p
  • REKLAMA
  • REKLAMA
  • #3 9175838
    Konto nie istnieje
    Poziom 1  
  • REKLAMA
  • #4 9178644
    albercik506
    Poziom 10  
    zamieszczając kod programu pominąłem linijkę dot. inicjalizacji adc, pomimo inicjalizacji adc na wyświetlaczu nadal pojawia się 1023 - co może być tego powodem - bo wydaje mi się że kod jest poprawny
  • #5 9181840
    albercik506
    Poziom 10  
    Witam ponownie, przypuszczałem, że to będzie błahostka, faktycznie jakimś cudem usunąłem inicjalizację wraz z niepotrzebną częścią kodu. I adc działa.
    Mam teraz inny problem. Po podłaczeniu dalmierza sharp wyświetlane są krzaki. Jaka może być tego przyczyna? Podłączałem akcelerometr do adc i napięcia są sczytywane poprawnie, sprawdzałem miernikiem.

    Dodano po 20 [minuty]:

    Już rozwiązałem problem, krzaki pojawiały się dlatego, że zasilałem układ z programatora i wychodzi na to ze nie miał wystarczającej wydajności prądowej lub wprowadzał duże zakłócenia. Podłączyłem go do zasilacza i jest ok. Zamykam wątek, pozdrawiam.
REKLAMA