Listing /. Obsługa przerwania od przepełnienia TI.
//AA**tAAAA»AAAA*AtAA*A>AAAA*A*AAAA.AAAA*AtAAAA»AAAA«AtAAAA..
S1GNAŁ (aIG O/KRFLOWl)
t
unsigned char xl,x2,x3;//cmega t dla fn=l i ola fn=2 i £ !fn—2) ł if (LED_i—1) SINJ.++; I ftlsft STN_i++;
t: .-sinus AUDIO //przebieg odniesienia £0 xl- :i310*SIN_i) »3; i 31C-: table [OJ
DCR1A-SIN [xl] ; //pzzebieg o cceotuLliwoaci Łownej £0* f x2= I f rabie [f ] *SIN_i) ;>>8;
DCRIB-SINUZJ ;
LED
x3»x2-xl;
DCR2-x3;
//;:::; : ::: r : .* r; r wyświetlać?
PCRTD|=0xfb;
PCRTD|—0xcl;
if (LED_i“*l) //Jedności £
{
PORTB &=LE 3_j edn_PE[f_LED];
PORTD&=LED jedn PD[f LED];
}
e1se / /dziesiatki f
t
PORTB&—LED_dzieo_FB(£_LED]/
PORTD&-LED_dzies_FD(f_LED];
LED_i=0;
>;
LED if+;
};
//**r****4*1t****r***** + *****r****4******T***+4******T + t**lHHr\
t******t**
Listing 2. Kod pętli głównej programu.
/ ^*I*t#»ll*ł**t*I***»l*t**'
for (;;)
(
//czy wciśnięto 2 przyciski i csestoŁlivosc==0?
//jc3li tak tc następuję przełączenie częstotliwości nośnej ii (up()—L &6 down()—1 && f—0)
{
if (fn***l] fn=2; else fn*l; do { }
while (cpO—1 || down O — 1); //czekaj a? zor.tana p loop(lOOO); //gaszenie irgan przycisków
)/
//zwiększ lub znniejsz częstotliwość if »up()Ml II down()-»l) ł
SINJL-O;
if (up()«l && f/fn<max f) //zwiekrranie czestot .
if 'down()==l && f/fn>mi.n_f) f-=fn; //zmniejszanie £
if (faza<3) liczni k*?.S0t); //npnzn i en i e dla pi *rw?ry >;
alse Iiczmk*500; .//opóźnienie dla kolejrych przeskokom
do t
licznik—?
warunek=up()+do>/n() ;
}
while (!(Xiczriik""0 II varunek--0))?//peielka opozriai.i -.
//cyferek na wyświetlaczu przy wciśniętym przycisku faza*+;
if(faza>4) faza—I;
loop(lOC); //gaszenie drgań przycisk v
)
else faza»0;
f_LED*»f/fn; //zęby wyświetlacz pokazywał właściwa czestot', iw
);
Z/*******************************************************************
proponują sprawdzić samemu i zachęcam do budowy opisanego dalej układu elektronicznego.
Na wstąpię zaznaczam, że stosowanie urządzenia nie wymaga od użytkownika przyklejania sobie elektrod do czoła albo zakładania hełmu na głowę (np. jak miało to miejsce w filmie o przygodach podopiecznego dr. Frankensteina) - wystarcza słuchawki stereofoniczne i dodatkowo okulary wyposażone w diody LED mrugające w kierunku oczu.
Do zrealizowania układu elektronicznego potrzebne są dwa generatory wytwarzające przebieg o częstotliwości akustycznej, najlepiej sinusoidalny. Częstotliwość przebiegu jednego i drugiego generatora powinna się różnić o kilka-kilkanaście Hz, a różnica ta powinna być stała w czasie. Przebieg z pierwszego generatora podajemy na lewą słuchawkę, natomiast przebieg z drugiego na prawą. Słuchawki zakładamy na uszy i co słyszymy? Oczywiście pojedynczy dźwięk w jednym uchu i podobnie w drugim. Ale oba tony zdud-niają się w mózgu i dodatkowo słyszymy ton
0 częstotliwości równej absolutnej różnicy częstotliwości tonu z obydwu słuchawek.
1 właśnie tak można wywołać określony poziom umysłu. Efekt potęgują migające z częstotliwością różnicową diody LED przystawione blisko zamkniętych oczu.
Żeby jeszcze bardziej uzmysłowić zasadę działania, można zaznaczyć, że stosowanie głośników zamiast słuchawek jest bezcelowe, ponieważ obydwie fale akustyczne pochodzące od membran głośników zdudniają się już w powietrzu i pomimo że słyszymy ton różnicowy, efekt z tego żaden.
Praktyczna realizacja koncepcji widoczna jest na rysunku 2.
W roli głównej występuje procesor AVR ATMEGA8. Pełni on rolę generatorów przebiegów sinusoidalnych podawanych na słuchawki, generatora przebiegu dla diod LED oraz sterownika wyświetlaczy, na których widoczna jest częstotliwość zdudnień podana w Hz.
Zastosowanie w układzie wydajnego procesora AVR rozwiązało szereg problemów, z których najbardziej istotnym jest trudność w wytworzeniu dwóch przebiegów sinusoidalnych o niewielkie różnicy częstotliwości i podtrzymanie tej różnicy. Problem utrzymania stabilności różnicy obu częstotliwości odpadł automatycznie, natomiast samo wytworzenie przebiegu bardzo podobnego do sinusoidy jest trochę skomplikowane.
Procesor, który jest napędzany wewnętrznym oscylatorem o częstotliwości 8 MHz, generuje przebieg bardzo zbliżony do sinusoidalnego za pomocą dwóch sprzętowych generatorów PWM (OCR1A i OCR1B). Pracują one w trybie fast-PWM bez prcskalera i częstotli
r****************»**w.
wość przebiegu PWM wynosi 31250Hz. A więc, co bardzo istotne, jest to częstotliwość niesłyszalna dla ucha ludzkiego.
W ten sposób (za pomocą modulacji PWM) teoretycznie można uzyskać w słuchawce czysty ton sinusoidalny, bez stosowania
14 Październik 2005 Elektronika dla Wszystkich