Siema, mam zagwozdkę, bardziej ideową niż programową (na razie
)
Potrzebuję wykonać 3 kanałowy pomiar ADC. zależy mi na zachowaniu małej różnicy czasowej miedzy pomiarami, czy jeżeli w funkcji main, uruchomię kolejno:
pomiar(kanal1);
pomiar(kanal2);
pomiar(kanal3);
gdzie funkcję pomiar() odpowiadają za obsługę przetwornika ADC i zapisanie wyniku w pamięci RAM
to różnica w czasie między pomiar(kanal1), a pomiar(kanal2); wyniesie dla Atmega8A:
Normal conversions, single ended: 1.5 (Cycles from Start of Conversion) 13 (Conversion Time (Cycles)) //dane z datasheeta
[w sumie 14,5 cykli?]
przy kwarcu 11,0592 MHz
prescaler ustawiony na 64, to częstotliwość próbkowania = 172,8 kHz, wtedy
czas 14,5 cykli = 0,0839 e-3 = 83,9 us
i taka powinna być różnica między pomiarem 1 a 2?
czyli miedzy pomiarem 1 a 3 różnica wyniesie 2*83,9 us = 167,8 us?
ile cykli zajmuje zapisanie wyniku do pamięci mikroklocka?
Ustawienie prescalera na 2, spowodowałoby czas samplowania = 5,5255MHz, wtedy
czas 14,5 cykli = 2,62 e-6 = 2,62 us, tylko wtedy tracę 10 bitową rozdzielczość próbkowania, która powinna zawierać się (50-200 kHz)?
co istotnego pomijam w tych rozważaniach?