manejo de ADC y Arrays con tarjeta Olimex

Páginas: 5 (1201 palabras) Publicado: 28 de marzo de 2012
ANEXOS ANEXO 1.

/* PROGRAMA QUE REALIZA UNA CONVERSIÓN ANALOGO/DIGITAL */ /* EL RESULTADO DEL ADC LO GUARDA EN UN VECTOR DE TAMAÑO 100 */ #include "ioat91sam7x256.h" #include "tarjeta.h" int main (void){ int i; int A[100]; AT91S_ADC AT91S_PMC *pADC; *pPMC; // CREA EL PUNTERO pADC // CREA EL PUNTERO pPMC // EL PUNTERO pADC APUNTA A LA BASE DE ADC // EL PUNTERO pPMC APUNTA A LA BASE DE PMCpADC = AT91C_BASE_ADC; pPMC = AT91C_BASE_PMC;

pPMC -> PMC_PCER = (1 ADC_CHER | AT91C_ADC_CH3; // HABILITA EL CH3 COMO ADC (PB30) while (1){ // HACE UN CICLO MIENTRAS (1)

for (i=0;i ADC_CR = pADC -> ADC_CR | AT91C_ADC_START; // INICIA LA CONVERSION while ((pADC -> ADC_SR & AT91C_ADC_DRDY)==0); // MIENTRAS QUE LA BANDERA //SEA 1 ESTE EN ESE CICLO A[i] = pADC -> ADC_LCDR; // SE CARGA EL VECTOR }} }
ANEXO 2.

/* PROGRAMA QUE REALIZA UNA CONVERSIÓN ANALOGO/DIGITAL */ /* LA ENTRADA POR CANAL1 (PB28) (PIN 12 EXTERNO)*/ /* Y SALIDA POR LOS PINES 1, 2, 3 Y 4 DEL EXTERNO (PA3, PA4, PA27, PA28)*/ /* EL VOLTAJE DE REFERENCIA SERÁ 5 VOLTIOS */ /* EL RESULTADO DEL ADC SE DEBE VISUALIZAR ASI: */ /* SI ES MAYOR A 1.25V ENCIENDE UN LED, SI ES MAYOR A 2.5V ENCIENDE DOS LEDS.....*/

#include"ioat91sam7x256.h" #include "tarjeta.h" int main (void){ int i; AT91S_PIO AT91S_PIO AT91S_ADC AT91S_PMC *pPIOA; *pPIOB; *pADC; *pPMC; // CREA EL PUNTERO pPIOA // CREA EL PUNTERO pPIOA // CREA EL PUNTERO pADC // CREA EL PUNTERO pPMC // EL PUNTERO pPIOA APUNTA A LA BASE DEL PIOA // EL PUNTERO pPIOA APUNTA A LA BASE DEL PIOB // EL PUNTERO pADC APUNTA A LA BASE DE ADC // EL PUNTERO pPMC APUNTA A LA BASE DEPMC

pPIOA = AT91C_BASE_PIOA; pPIOB = AT91C_BASE_PIOB; pADC = AT91C_BASE_ADC; pPMC = AT91C_BASE_PMC;

pPIOA -> PIO_PER = pPIOA -> PIO_PER | AT91C_PIO_PA3 | AT91C_PIO_PA4 | AT91C_PIO_PA27 | AT91C_PIO_PA28; //CONFIGURA LOS PINES 3, 4, 27 Y 28 DEL PUERTO “A” COMO LINEA E/S pPIOA -> PIO_OER = pPIOA -> PIO_OER | AT91C_PIO_PA3 | AT91C_PIO_PA4 | AT91C_PIO_PA27 | AT91C_PIO_PA28; //CONFIGURA LOS PINES3, 4, 27 Y 28 DEL PUERTO “A” COMO SALIDAS pPMC -> PMC_PCER = (1 ADC_CR | AT91C_ADC_START; // INICIA LA CONVERSION while ((pADC -> ADC_SR & AT91C_ADC_DRDY)==0); // MIENTRAS QUE LA BANDERA SEA 1 ESTE EN ESE CICLO i = pADC -> ADC_LCDR; // SE CARGA EL VECTOR if (i PIO_SODR = pPIOA -> PIO_SODR | AT91C_PIO_PA3; // ENCIENDE EL PIN 1 CUANDO 0< V< 1.25 pPIOA -> PIO_CODR = pPIOA -> PIO_CODR | AT91C_PIO_PA4| AT91C_PIO_PA28 | AT91C_PIO_PA27; //se apagan los pines 2,3 y 4 } if ((i>63)&&(i PIO_SODR = pPIOA -> PIO_SODR | AT91C_PIO_PA3 | AT91C_PIO_PA4; // ENCIENDE EL PIN 1 Y 2 CUANDO 1.25 < V < 2.5 pPIOA -> PIO_CODR = pPIOA -> PIO_CODR | AT91C_PIO_PA28 | AT91C_PIO_PA27; // se apagan los pines 3,4 } if ((i>127)&&(i PIO_SODR = pPIOA -> PIO_SODR | AT91C_PIO_PA3 | AT91C_PIO_PA4 | AT91C_PIO_PA27; // ENCIENDEEL PIN 1,2,3 CUANDO 2.5 < V < 3.75 pPIOA -> PIO_CODR = pPIOA -> PIO_CODR | AT91C_PIO_PA28; //se apaga el pin 4 } if (i>191) { pPIOA -> PIO_SODR = pPIOA -> PIO_SODR | AT91C_PIO_PA3 | AT91C_PIO_PA4 | AT91C_PIO_PA27 | AT91C_PIO_PA28; // ENCIENDE EL PIN 1,2,3,4 CUANDO V ES MAYOR A 3.75V } } }
ANEXO 3.

/* PROGRAMA QUE REALIZA UNA CONVERSIÓN ANALOGO/DIGITAL */ /* EL RESULTADO DEL ADC LO GUARDA ENUN VECTOR DE TAMAÑO 50 */ /* EL PROGRAMA CALCULA EL PROMEDIO DEL VECTOR Y COMPARA */ /* SI EL VOLTAJE ES MAYOR O IGUALES A 3V ENCENDE UN LED PIN1*/ /* SI EL VOLTAJE ES MENOR A 3V ENCIENDE OTRO LED PIN2*/ #include "ioat91sam7x256.h" #include "tarjeta.h" int main (void){ int i; int a; float prom; int A[50]; AT91S_PIO AT91S_ADC AT91S_PMC *pPIOA; *pADC; *pPMC; //CREA EL PUNTERO PIOA // CREA EL PUNTEROpADC // CREA EL PUNTERO pPMC //EL PUNTERO APUNTA A LA BASE DEL PIOA // EL PUNTERO pADC APUNTA A LA BASE DE ADC // EL PUNTERO pPMC APUNTA A LA BASE DE PMC

pPIOA = AT91C_BASE_PIOA; pADC = AT91C_BASE_ADC; pPMC = AT91C_BASE_PMC;

pPIOA -> PIO_PER = pPIOA -> PIO_PER | AT91C_PIO_PA3 | AT91C_PIO_PA4; // CONFIGURA A PA3 Y PA4 COMO LINEA E/S pPIOA -> PIO_OER = pPIOA -> PIO_OER | AT91C_PIO_PA3 |...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Como Manejarse Con Las Tarjetas De Credito
  • Manejo de tarjetas de credito
  • Diez puntos imprescindibles para manejar tu tarjeta de crédito
  • arrays
  • Arrays
  • Arrays
  • Arrays
  • Arrays

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS