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

[C] Wykorzystanie portu D na wyświetlacz i ADC - ATMega32

Mihó 28 Maj 2009 23:02 1191 3
REKLAMA
  • #1 6588167
    Mihó
    Poziom 27  
    Mam w tej chwili wykorzystany port D do obsługi wyświetlacza. W tym celu używam biblioteki lcd.c, którą można znaleźć http://jump.to/fleury Wyświetlacz obsadza 7 pinów tego portu. Pozostał mi jeden - ADC7. Czy mogę go opisać jako wejście ADC i wykorzystać do pomiaru napięcia 1-1,5V ? W tej chwili deklaracja portów wygląda następująco:

    DDRB = 0b10000011;
    PORTB = 0b01111111;
    DDRD = 0b11111111;
    PORTD = 0b11111111;
  • REKLAMA
  • REKLAMA
  • #3 6588396
    dawid512
    Poziom 32  
    Po za tym to mowa o porcie A patrz datasheet.
  • #4 6593434
    Mihó
    Poziom 27  
    Oczywiście, że chodzi o port A :)

    Poniżej mam fragment kodu, który już wykorzystywałem kiedyś w aplikacji, ale tam było trochę inaczej - wyświetlacz był na innym niż ADC porcie.

    Poza pętlą main:
    void adc_init(void) 
    	{ 
    	//ADMUX =  (1<<REFS0)|(1<<REFS1); 
    	ADCSRA = (1<<ADEN) | (1<<ADPS2)| (1<<ADPS0); 
    	ADMUX = 0b11000010;
    	}


    Deklaracja portów w pętli main:

    DDRA=0b00000000;
    PORTA=0b00000000;
    adc_init();


    I to co powyżej mnie niepokoi... Czy nie spowoduje to zakłócenia pracy wyświetlacza ?

    Poniżej już miałem przeliczanie:

    ADCSRA |= _BV(ADSC);
      while(bit_is_set(ADCSRA,ADSC))
        {};


    Czy jest możliwość takiej deklaracji portu A, by wyświetlacz był obsługiwany jak do tej pory i tylko jeden pin był do mojej dyspozycji do ADC ?

    Dodano po 3 [godziny] 57 [minuty]:

    Wyświetlacz mam na porcie C w tej chwili, więc temat uważam za zamknięty
REKLAMA