This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| et:avr:dac [2014/01/27 11:01] – raivo.sell | et:avr:dac [2020/07/20 09:00] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Digitaal-analoogmuundur ====== | + | ====== Digitaal-analoogmuundur ====== |
| + | |||
| + | Digitaal-analoogmuundur (inglise keeles //digital to analog converter//, | ||
| + | |||
| + | Sisendpinget saab sarnaselt ADC muundurile sisestada nii 12-bitisena kui 8-bitisena. | ||
| + | ATxmega128A1U kontrolleril on 2 DAC moodulit, mõlemal 2 kanalit, mis teeb kokku 4 DAC väljundit. Võrdluspingeks saab kasutada toitepinget AVcc, 1,00 V sisemist pinget, AREFA või AREFB analoog muunduri võrdluspinge sisendist. | ||
| + | |||
| + | <box 100% round # | ||
| + | |||
| + | Näites on toodud DACA ühe kanali seadistamine ja väärtuse seadmine. DACA CH0 on ühendatud ATxmega128A1U kontrolleril viiguga PA2. | ||
| + | |||
| + | <code c> | ||
| + | // Käivita DACA ning DACA kanal CH0 | ||
| + | DACA.CTRLA = (DAC_CH0EN_bm|DAC_ENABLE_bm); | ||
| + | // Seadista DACA ühe kanali CH0 režiimi | ||
| + | DACA.CTRLB = (DAC_CHSEL_SINGLE_gc); | ||
| + | // Seadista DACA referents pingeks toitepinge AVcc | ||
| + | DACA.CTRLC = (DAC_REFSEL_AVCC_gc); | ||
| + | |||
| + | // Oota, kuni viimane konverteerimine on lõppenud | ||
| + | while((DACA.STATUS & DAC_CH0DRE_bm) == 0); | ||
| + | // Seadista DACA CH0 viigu pingeks ~2V | ||
| + | DACA.CH0DATA = 2000; | ||
| + | </ | ||
| + | </ | ||