Chciałbym przedstawić bibliotekę umożliwiającą odtwarzanie melodyjek w formacie RTTTL. Może zacznę od prezentacji:
Wersja long
Zaletą biblioteki jest to, że nie blokuje działania procka podczas odtwarzania muzyki. Również nie trzeba majstrować przy konwersji melodyjki. Wystarczy ją wrzucić jako string a biblioteka już sobie poradzi z jej odtworzeniem. Dzięki uwagom kolegi Krauser rozmiar biblioteki wynosi ok 2kB
Minusy - Na chwilę obecną dla każdego procka i dla każdej częstotliwości taktowania (w demkach biblioteka ustawiona na ATmegę8 i F_CPU=8MHz) trzeba generować oddzielnie część kodu odpowiadającego za ustawienie odpowiedniej częstotliwości dla każdej nuty. Pobawiłem się trochę arkuszem kalkulacyjnym (OpenOffice Calc) w którym można wygenerować potrzebny kod całkiem szybko i przyjemnie. Wystarczy podać częstotliwość taktowania, rodzaj timera (8 czy 16 bit), nazwy rejestrów oraz przypisać wartości przeskalera dla pinów CSxn. Następnie po kliknięciu buttona wygenerowany fragment kodu zostanie skopiowany do schowka, który trzeba wkleić do instrukcji warunkowej case w funcji playNote w pliku piezo.c. Jest troszkę kombinowania, ale jak się raz ustawi to można odtwarzać co się chce
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Co do zmiany nutek po zmianie kwarca to można by spróbować użyć timer1, a wtedy na jednym preskalerze można by to obskoczyć i w kodzie wykorzystać sobie symbol F_CPU
Użytkownicy przeglądający ten dział: Bing [Bot] i 0 gości
Nie możesz rozpoczynać nowych wątków Nie możesz odpowiadać w wątkach Nie możesz edytować swoich postów Nie możesz usuwać swoich postów Nie możesz dodawać załączników