Linear Technology DC955A - LTC2483 16-bit Delta-Sigma ADC demo board (req. DC590) DC955A DC955A Scheda Tecnica

Codici prodotto
DC955A
Pagina di 34
LTC2483
0
2483fc
applicaTions inFormaTion 
   union                         // adc_code.bits32    all 32 bits
      {                          // adc_code.by.te0    byte 0
      signed int32 bits32;       // adc_code.by.te1    byte 1
      struct fourbytes by;       // adc_code.by.te2    byte 2
      } adc_code;                // adc_code.by.te3    byte 3
// Start communication with LTC2483:
      i2c_start();
      if(i2c_write(addr | READ))// If no acknowledge, return zero
         {
         i2c_stop();
         return 0;
         }
      adc_code.by.te3 = i2c_read();
      adc_code.by.te2 = i2c_read();
      adc_code.by.te1 = i2c_read();
      adc_code.by.te0 = 0;
      i2c_stop();
   return adc_code.bits32;
   } // End of read_LTC2483()
/*** initialize() **************************************************************
Basic hardware initialization of controller and LCD, send Hello message to LCD
*******************************************************************************/
void initialize(void)
   {
   // General initialization stuff.
   setup_adc_ports(NO_ANALOGS);
   setup_adc(ADC_OFF);
   setup_counters(RTCC_INTERNAL,RTCC_DIV_1);
   setup_timer_1(T1_DISABLED);
   setup_timer_2(T2_DISABLED,0,1);
// This is the important part - configuring the SPI port
   setup_spi(SPI_MASTER|SPI_L_TO_H|SPI_CLK_DIV_16|SPI_SS_DISABLED); // fast SPI clock
   CKP = 0; // Set up clock edges - clock idles low, data changes on
   CKE = 1; // falling edges, valid on rising edges.
   lcd_init();                   // Initialize LCD
   delay_ms(6);
   printf(lcd_putc, “Hello!”);   // Obligatory hello message
   delay_ms(500);                // for half a second
   } // End of initialize()
/*** main() ********************************************************************
Main program initializes microcontroller registers, then reads the LTC2483
repeatedly
*******************************************************************************/
void main()
   {
   signed int32 x;   // Integer result from LTC2481
   float voltage;     // Variable for floating point math
   int16 timeout;
   initialize();     // Hardware initialization
   while(1)
      {
      delay_ms(1);      // Pace the main loop to something more than 1 ms
// This is a basic error detection scheme. The LTC2483 will never take more than
// 149.9ms to complete a conversion in the 55Hz
// rejection mode.