Játék egyetlen csengőhangok segítségével AVR - mikrokontrollerek és a technológia
Képződése hangzást mikrokontroller nem túl nehéz. Elég alapozni egy programot villogó LED és csatlakoztassa a hangszóró, és a program változtatni a késedelem konstans úgy, hogy a kimenő frekvencia megnő, hogy a hang sáv. Egy személy hangokat gyakoriságra 50Hz 15kHz. LED egyik tanulságok villog a 4 Hz, és ha csökkenti a késleltetési idő 1000-ben, akkor kap a kimeneti frekvencia 4 Hz.
Célkitűzés: dolgozzon ki egy programot, amellyel Atmega8 mikrokontroller játszani egy egyszerű tonális dallam.
A zenei szám van osztva oktáv, mindegyik oktáv van osztva 12 Megjegyzések 7 alap (Do, Re, Mi, Fa, Sol, La, Si), és további öt (Előzetes éles, D éles, fisz, Sol éles, La éles) . A frekvenciák két szomszédos hangok különböznek egymástól az azonos számú alkalommal, és a frekvenciák két hasonló két szomszédos oktávot jegyzetek különbözik 2-szer.
A generál hangot hexadecimális időzítő / Counter1, működni fog STS módban (reset a véletlen), hogy ellenőrizzék a konverziós tényezőt tartalmazó regiszter használatát ICR1. CTC mód lehetővé teszi a közvetlen irányítást a jel frekvenciája. Annak érdekében, hogy ez a mód bitek és WGM13 WGM12 állítva.
Annak érdekében, hogy az STS üzemmódban a kimeneti jel periodikus alakított kell konfigurálni OC1A kimenet, hogy egybeessen az egyes kimeneti jel megváltozik az értéke éppen ellenkezőleg. Annak megállapítására, ezt COM1A1 bit egy és a hangszóró, valamint beállítani a kimeneti port PB1.
A jel frekvencia kimeneti OC1A formula határozza meg:
ahol N - előosztóval skálázási tényező, nem pedig a mi esetünkben OCR1A ICR1.
Emellett megjegyzi, bármilyen dallamot tartalmaz szünet az idő, amikor nincs hang hallható. Szünet választ Set_temp funkciót. ez egyszerűen a megfelelő időben kikapcsol az időzítő / számláló.
Az alábbiakban a forráskód egy részletes leírást, ha valami nem világos kérdéseket feltenni. Az egyik a következő feladatokat elemzi, hogyan lehet, hogy egy hang szintetizátor.