Witam, mam pytanie bo się męczę już trochę czasu i zniechęcam. Jak najlepiej obsłużyć przetwornik piezo żeby mieć na nim zakres kilku herców do tych 16kHz.
ATmega168pa + 16MHz kwarc, kondensatory wszystkie ok.
Przetwornik piezo podpięty pod PD5, druga strona do GND.
Gdy po prostu do pętli while wrzucę:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Otrzymuję na przetworniku 1.6 MHz, jak tylko załączę przerwania "SEI();" na przetworniku mam tylko 76kHz.
Kolejna sprawa jeżeli chcę przez procedurkę sterować tym wyjściem robię tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i zamiast bezpośrednio sterować portem wywołuję tę procedurę, mam jeszcze mniejsze częstotliwości. Po co to piszę, gubię się w tym jakie operacje ile cykli zajmują, może ja coś robię źle? A zawsze wydawało mi się, że preprocesor przed kompilacją zamienia kod na najprostszy więc pozbywa się wywołania przez procedurę co za tym idzie nie ma to znaczenia w jaki sposób steruję portem.
Może mi ktoś coś mądrego podpowie. Nie jest to żadne zadanie na szybko do szkoły tylko hobbystyczne dłubaniny amatora, który się chce czegoś nauczyć. A już się trochę zniechęca. Dziękuję za jakąkolwiek mądrą radę. Pozdrawiam.