Az ATmega8 AD átalakítójának a blokkvázlata látható az első ábrán. Összesen 8 analóg bemenet lehet, ezek közül választjuk ki a multiplexer segítségével az átalakítani kívánt analóg jelet. A kiválasztásért az ADMUX regiszter felel.
1. ábra AD átalakító blokkvázlata az ATmega8-nál (kattints a képre)
Az ADMUX regiszter látható a második ábrán, a referenciafeszütségek kiválasztásáért a REFS0, REFS1 bitek felelnek. Az átalakított analóg jel 10 biten kerül eltárolásra, ehhez viszont két 8 bites regiszter kell. Az ADLAR bit segítségével tudjuk beállítani, hogy az ADCH-ba kerüljön-e 8 bit és az ADCL-be 2, vagy fordítva.
2. ábra Az ADMUX regiszter
A MUX0-3 bitekkel tudjuk beállítani azt, hogy a 8 analóg bemenet közül melyiket alakítsuk át digitális jellé (3. ábra).
3. ábra Az analóg csatorna kiválasztása
Fontos szerepet kap az AD átalakító használata során az ADCSRA regiszter is (4. ábra), hiszen itt találjuk az AD átalakító engedélyezését, a megszakításkezeléséhez elengedhetetlen flag-et (ADIF), az IT engedélyezését (ADIE), a konverziós idő megadását és természetesen az AD konverzió elindítása (ADSC) is itt kapot helyet.
4. ábra Az ADCSRA regiszter
Végül nézzünk meg egy példát, amely az ATmega8-as családban használt AD átalakító alkalmazását mutatja be.
#include <avr/io.h>
int main(void)
{
DDRD = 0xFF;
DDRC = 0b11111110;
ADCSRA = 0b10000111;
ADMUX = 0b01100000;
ADCSRA |= 1<<ADSC;
while(1)
{
// várjuk a konverzió végét
while(ADCSRA & (1 << ADSC));
//a felső 8 bitet kitesszük a D portra
PORTD = ADCH;
//konverziót elindítjuk
ADCSRA |= 1<<ADSC;
}
}
Először beállítjuk a D portot kimenetre, illetve a C port 0. bitje bemenet, a többi kimenet lesz.
Ezután az AD átalakítót konfiguráljuk fel, az AN0 bemenetet fogjuk az átalakításra felhasználni, az átalakítási tartomány a teljes tápfeszültség lesz.
Az AD átalakító működésének beállítása után elindítjuk a konverter működését (ADCSRA |= 1<<ADSC;). A while(1) végtelen ciklusban addig várakozunk, amíg a konverzió véget nem ér. Az átalakítás után a D portra kitesszük az ADCH (itt van az átalakított analóg érték felső 8 bitje) értékét.
Ezután újra elindítjuk az AD átalakítót.
Végül láthatjuk az 5. ábrán a behuzalozott tesztpanelt, amelynek segítéségvel az AD átalakító tesztelhető.
5. ábra A behuzalozott tesztpanel
Október közepén elindítjuk az Atmel 8 bites mikrovezérlőkről szóló sorozatunkat. Ehhez használnunk kell természetesen egy fejlesztőkörnyezetet is. Több ilyen is létezik, például a WinAVR, vagy az Atmel Studio. Mi az Atmel Studio-t fogjuk használni, e. . . .
A PIC18F mikrovezérlők ma is népszerű a fejlesztők körében. Noha 8 bites architektúráról beszélünk, számos érdekes és hasznos alkalmazás megvalósítható vele. Elég csak az USB-re, vagy akár az Ethernetre gondolnunk. Ezért a Szerkesztőség egy sorozat k. . . .
Megnézzük most néhány példa segítségével a Watchog Timer (WDT) használatát. Írni fogunk közvetlenül regisztert, de használni fogunk makrókat is.. . . .