Gonzalo Brusco
/
QuiPAD
Real Time FIR Filter - Distinctive Excellence award winner :)
adc_dac.c@0:b3e50e98acac, 2011-08-13 (annotated)
- Committer:
- Gonzakpo
- Date:
- Sat Aug 13 17:35:52 2011 +0000
- Revision:
- 0:b3e50e98acac
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Gonzakpo | 0:b3e50e98acac | 1 | |
Gonzakpo | 0:b3e50e98acac | 2 | #include "adc_dac.h" |
Gonzakpo | 0:b3e50e98acac | 3 | |
Gonzakpo | 0:b3e50e98acac | 4 | void initDAC(void) |
Gonzakpo | 0:b3e50e98acac | 5 | { |
Gonzakpo | 0:b3e50e98acac | 6 | LPC_PINCON->PINSEL1 |= (0x2 << 20); /* Salida del DAC por pin numero P0.26 (AOUT)*/ |
Gonzakpo | 0:b3e50e98acac | 7 | /* (Unico pin posible para esta funcion) */ |
Gonzakpo | 0:b3e50e98acac | 8 | LPC_PINCON->PINMODE1 |= (0x2 << 20); /* Deshabilito R de pull-up y R de pull-down */ |
Gonzakpo | 0:b3e50e98acac | 9 | |
Gonzakpo | 0:b3e50e98acac | 10 | LPC_SC->PCLKSEL0 |= (0x3 << 22); /* Clock del DAC: */ |
Gonzakpo | 0:b3e50e98acac | 11 | /* 00 = CLCK/4 */ |
Gonzakpo | 0:b3e50e98acac | 12 | /* 01 = CLCK */ |
Gonzakpo | 0:b3e50e98acac | 13 | /* 10 = CLCK/2 */ |
Gonzakpo | 0:b3e50e98acac | 14 | /* 11 = CLCK/8 */ |
Gonzakpo | 0:b3e50e98acac | 15 | |
Gonzakpo | 0:b3e50e98acac | 16 | LPC_DAC->DACCTRL = 0x00; /* Desabilitar contador y DMA requests */ |
Gonzakpo | 0:b3e50e98acac | 17 | |
Gonzakpo | 0:b3e50e98acac | 18 | } |
Gonzakpo | 0:b3e50e98acac | 19 | |
Gonzakpo | 0:b3e50e98acac | 20 | void initADC(void) |
Gonzakpo | 0:b3e50e98acac | 21 | { |
Gonzakpo | 0:b3e50e98acac | 22 | LPC_SC->PCONP |= (1 << 12); /* Enciendo modulo ADC */ |
Gonzakpo | 0:b3e50e98acac | 23 | |
Gonzakpo | 0:b3e50e98acac | 24 | LPC_PINCON->PINSEL1 |= (0x1 << 14); /* Salida del ADC por pin numero P0.23 (AD0.0) */ |
Gonzakpo | 0:b3e50e98acac | 25 | |
Gonzakpo | 0:b3e50e98acac | 26 | LPC_PINCON->PINMODE1 |= (0x2 << 14); /* Deshabilito R de pull-up y R de pull-down */ |
Gonzakpo | 0:b3e50e98acac | 27 | |
Gonzakpo | 0:b3e50e98acac | 28 | LPC_SC->PCLKSEL0 |= (0x3 << 24); /* Clock del ADC: */ |
Gonzakpo | 0:b3e50e98acac | 29 | /* 00 = CLCK/4 */ |
Gonzakpo | 0:b3e50e98acac | 30 | /* 01 = CLCK */ |
Gonzakpo | 0:b3e50e98acac | 31 | /* 10 = CLCK/2 */ |
Gonzakpo | 0:b3e50e98acac | 32 | /* 11 = CLCK/8 */ |
Gonzakpo | 0:b3e50e98acac | 33 | |
Gonzakpo | 0:b3e50e98acac | 34 | LPC_ADC->ADCR = (0x01 << 0) | /* Selecciono el canal cero del ADC */ |
Gonzakpo | 0:b3e50e98acac | 35 | (0x00 << 8) | /* Minimo clk_div. Recordar que este es el clock de coversion del ADC. No el tiempo entre muestras. El maximo admisible es 13MHz. */ |
Gonzakpo | 0:b3e50e98acac | 36 | (0x00 << 24); /* Configuracion de START: como trabaja en modo BURST el start debe quedar en 0 */ |
Gonzakpo | 0:b3e50e98acac | 37 | |
Gonzakpo | 0:b3e50e98acac | 38 | LPC_ADC->ADINTEN = 0x00; /* Todas las interrupciones DESACTIVADAS */ |
Gonzakpo | 0:b3e50e98acac | 39 | |
Gonzakpo | 0:b3e50e98acac | 40 | /* Finalmente, inicio el ADC*/ |
Gonzakpo | 0:b3e50e98acac | 41 | LPC_ADC->ADCR |= (0x1 << 21); /* Inicio ADC */ |
Gonzakpo | 0:b3e50e98acac | 42 | LPC_ADC->ADCR |= (0x1 << 16); /* Inicio Modo Burst (conversion continua) */ |
Gonzakpo | 0:b3e50e98acac | 43 | |
Gonzakpo | 0:b3e50e98acac | 44 | } |