Witam,
Od wczoraj zmagam się z przetwornikiem. Odczyt z jednego kanału mam opanowany
Ale schody zaczęły się gdy chce odczytać dane z kilku kanałów.
Na początku wpisywałem wartości rejestrów ADCSRA i ADMUX w postaci 0b11111111, bo tak mi wygodniej i ten zapis rozumiem. Ale wyczytałem gdzieś na elce, że to może być błędem, no wiec teraz ryzykuje zapisem - dla mnie extremalnym : _BV(ADEN). Ale to nie pomaga, wraz jest problem i wyświetlacz pokazuje dane z portu ADC2 - chodź powinien pokazać z ADC0, mało tego ten pomiar jest "migajacy" na zmianę z zerem.
Obu tych pomiarów będę używał później do działania moc=napiecie*prad, jednak na nic to, kiedy nie potrafię odczytać dwóch kanałów... :/
Jeśli ktoś mógłby pomóc, będę bardzo wdzięczny, kod mojego programu:
Od wczoraj zmagam się z przetwornikiem. Odczyt z jednego kanału mam opanowany
Ale schody zaczęły się gdy chce odczytać dane z kilku kanałów.
Na początku wpisywałem wartości rejestrów ADCSRA i ADMUX w postaci 0b11111111, bo tak mi wygodniej i ten zapis rozumiem. Ale wyczytałem gdzieś na elce, że to może być błędem, no wiec teraz ryzykuje zapisem - dla mnie extremalnym : _BV(ADEN). Ale to nie pomaga, wraz jest problem i wyświetlacz pokazuje dane z portu ADC2 - chodź powinien pokazać z ADC0, mało tego ten pomiar jest "migajacy" na zmianę z zerem.
Obu tych pomiarów będę używał później do działania moc=napiecie*prad, jednak na nic to, kiedy nie potrafię odczytać dwóch kanałów... :/
Jeśli ktoś mógłby pomóc, będę bardzo wdzięczny, kod mojego programu:
int main(void)
{
DDRD = 0xff;
DDRB = 0xff;
DDRC = 0x00;
ADCSRA = _BV(ADEN) |_BV(ADPS0)|_BV(ADPS1);
int napiecie=0;
int prad=0;
while(1){
ADMUX=34;
ADCSRA |= _BV(ADSC);
napiecie=ADCH;
ADMUX=32;
ADCSRA |= _BV(ADSC);
prad=ADCH;
wyswietl(napiecie);
}
}
![[atmega8][c] Problem z odczytem róznych wejść ADC... [atmega8][c] Problem z odczytem róznych wejść ADC...](https://img64.imageshack.us/img64/2602/dsc5120small.th.jpg)