código C para lectura analógica de SD24 ADC (MSP430I2041)

0

Estoy tratando de leer la salida del ADC en una matriz tomando la salida del registro de memoria, pero por alguna razón no funciona, los valores de la matriz permanecen como 0:

   int adc[100] = {0}; //Sets up an array of 100 integers and zero's the values
   int i=0;

  // Function prototypes
  void adc_Setup();
  void adc_Sam();

  void main()
  {
    WDTCTL = WDTPW + WDTHOLD;           // Stop WDT
    adc_Setup();                        
    while(i<100)
    {
      adc_Sam();    // activating the adc 100 times 
    }
  }

 // ADC set-up function
 void adc_Setup()
 {
   SD24CCTL0 = SD24OSR_1024+SD24SNGL+SD24IE;  // SINGLE CONVERSION ENA IONTURRPUT    
   SD24INCTL0 = SD24INCH_0;        // Select Channel A0, SD24INTDLYx = 00
                                   // SD24INCTL0 |= SD24GAINx FOR GAIN FROM 1 TO 16
 }

 // ADC sample conversion function
 void adc_Sam()
 {
   SD24CCTL0=SD24SC; // activates the adc this is a control register
   __delay_cycles(1000);
   while (SD24CCTL0  & BUSY)// waits
   {        
      __bis_SR_register(CPUOFF + GIE);// Low Power Mode 0
   }
    adc[i]=SD24MEM0; // takes  the data from the output of the adc
    i++;
 }

También este registro de memoria tiene solo 16 bits de los 24 bits. Puede cambiar si desea que mantenga el LSB o el MSB. Así que si quiero todos los bits. ¿Tengo que cambiarlo y guardar la información dos veces, luego tomar los 8 bits faltantes? ¿O hay una mejor manera?

actualización:
No hubo problema. Solo CCS muestra los valores de las variables que se declaran en la función principal, que es todo

    
pregunta Georges

1 respuesta

2

Olvidó configurar el voltaje de referencia (el valor predeterminado es una referencia externa, que no mencionó).

La Sección 13.2.7.2 de la Guía del usuario dice:

  

Cuando SD24LSBTOG = 1, el bit SD24LSBACC se conmuta automáticamente cada vez que se   Se lee el registro SD24MEMx del canal. Esto permite leer el resultado de salida del filtro digital completo con   Dos accesos de lectura de SD24MEMx.

    
respondido por el CL.

Lea otras preguntas en las etiquetas