Fórum témák
» Több friss téma |
Cikkek » Egyszerű dallamcsengő Egyszerű dallamcsengő
Szerző: Topi, idő: Feb 16, 2008, Olvasva: 54252, Oldal olvasási idő: kb. 2 perc
Az AVR-be kerülő firmware nagy előnye, hogy a RTTTL formátumból generált minden dallam, és ugye RTTTL formátumban rengeteg nagy klasszikus begyűjthető. Nagyon röviden az RTTTL formátumrólEzt a formátumot a Nokia fejlesztette ki még anno, a mobiltelefon csengőhangok szabványosításához. Rövid szöveges formátumban tárolja a zenéket, rendes ábécés névvel. Bővebb leírás itt: Ring Tone Transfer Language (Wikipedia) Az AVR-be kerülő program
Magába az AVR-be egy nagyon egyszerű és rövid kis programot kell beégetnünk. A hang keltést a Timer0 komparátor modulja végzi. Lényeg, hogy a port logikai szintet vált, mikor eléri a komparálási szintet a Timer. A prociba kerülő programot C-ben írtam és AVRGCC-vel lehet lefordítani.
Ez egy nagyon fontos rész - maga a lejátszó -, és nem is igen kell / szabad módosítanod zenék módosításakor sem:
Ebből a kódrészletből látszik az is, hogy egy hang milyen módon van leírva két bájt segítségével, hogy vannak "tekergetve" egy bájt 8 bitje, hogy beleférjen az adat.
Működését tekintve a következő folyamat zajlik le. Kiszámolom, hogy meddig kell elszámolnia a timernek mielőtt állapotot váltana a PWM kimenet. Ha ez megvan, betöltöm a timer0 8-bites komparátor regiszterébe. Előre természetesen be van konfigurálva minden timer előosztó, CCP modul viselkedés, stb. TCNTn a Timer regisztere, ami számol mindig felfelé. Ha elérte az OCR0A regiszter (komparálási szint) értékét, akkor nullázza a TCNT0 regisztert és logikai szintet vált a OC0 kimenet. A melodies.c-ben vannak benne a dallamok, speciális formátumban, melyet a következő oldalon lévő konverter programmal tudjuk előállítani. Sok esetben, csak ezt az egy fájlt kell módosítani, ha új vagy más dallamokkal szeretnéd beprogramozni a dallamcsengőt. (Természetesen újrafordítást és újraprogramozást igényel) Az egész forráskód, a lefordított HEX, és egy halom RTTTL dallam (szövegként) letölthető: firmware.zip Lapozz... A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |