Witam,
Zdecydowałem się na napisanie tego posta z prośbą o podpowiedź, przegrzebałem kod, który jest prosty ale błędu nie mogę dostrzec.
Krótko: odczytuję w trybie single conversion wartość z ADC0, wrzucam do zmiennej int, potem UART. Jak robię jeden odczyt to wszystko jest ok.
Ale jak robię jeden po drugim (nawet z opóźnieniem 50ms), to wynik z ADC1 trafia mi do zmiennej, która zczytała z ADC0, a wartość z ADC0 trafia do zmiennej od ADC1. Kompletnie tego nie rozumiem.
Założenia: 10 bitów rozdzielczości, na ADC0 dzielnik napięcia 1:1 (spodziewam się wartości 512), na ADC1 dzielnik 1:10, czyli oczekiwana wartość to 93.
Jeśli odczytuję sam adcVal_N, dostaję ADC_N:512.
Jak odczytuję dodatkowo adcVal_E, dostaję ADC_N:93 ADC_E:512.
Oto kod, bardzo proszę o rzucenie okiem, jestem początkujący w mikrokontrolerach, może łamię jakieś podstawowe założenie.
Zdecydowałem się na napisanie tego posta z prośbą o podpowiedź, przegrzebałem kod, który jest prosty ale błędu nie mogę dostrzec.
Krótko: odczytuję w trybie single conversion wartość z ADC0, wrzucam do zmiennej int, potem UART. Jak robię jeden odczyt to wszystko jest ok.
Ale jak robię jeden po drugim (nawet z opóźnieniem 50ms), to wynik z ADC1 trafia mi do zmiennej, która zczytała z ADC0, a wartość z ADC0 trafia do zmiennej od ADC1. Kompletnie tego nie rozumiem.
Założenia: 10 bitów rozdzielczości, na ADC0 dzielnik napięcia 1:1 (spodziewam się wartości 512), na ADC1 dzielnik 1:10, czyli oczekiwana wartość to 93.
Jeśli odczytuję sam adcVal_N, dostaję ADC_N:512.
Jak odczytuję dodatkowo adcVal_E, dostaję ADC_N:93 ADC_E:512.
Oto kod, bardzo proszę o rzucenie okiem, jestem początkujący w mikrokontrolerach, może łamię jakieś podstawowe założenie.
Kod: C / C++