17-03-2019, 20:31
Jak używasz MEGA to nie ma double, jest tylko float (jeśli to ma dla Ciebie znaczenie).
Coś takiego: round(1000000*(1.0/samplingFrequency)); lepiej zapisać round(1000000.0/ samplingFrequency));
Jak chcesz mieć 64 sample odczytane co jakiś czas do adc0 musisz odczytywać wewnątrz tej pętli for, a nie przed nią.
No i zamień sobie warunek w while z micros, on tu nie ma żadnego sensu, po prostu możesz sobie zrobić delayMicroseconds. Micros() miałaby sens gdybyś ustawił sobie cykliczne uzupełnianie tablicy odczytów w pętli i po zebraniu 64 próbek wykonanie obliczeń, rozpoczęcie od nowa, a w między czasie procesor mógłby wykonywać inne zadania, np. resetować proces po wciśnięciu jakiegoś przycisku.
Coś takiego: round(1000000*(1.0/samplingFrequency)); lepiej zapisać round(1000000.0/ samplingFrequency));
Jak chcesz mieć 64 sample odczytane co jakiś czas do adc0 musisz odczytywać wewnątrz tej pętli for, a nie przed nią.
No i zamień sobie warunek w while z micros, on tu nie ma żadnego sensu, po prostu możesz sobie zrobić delayMicroseconds. Micros() miałaby sens gdybyś ustawił sobie cykliczne uzupełnianie tablicy odczytów w pętli i po zebraniu 64 próbek wykonanie obliczeń, rozpoczęcie od nowa, a w między czasie procesor mógłby wykonywać inne zadania, np. resetować proces po wciśnięciu jakiegoś przycisku.
Miło być decenianym https://buycoffee.to/kaczakat