test ADC128D818 12-Bit, 8-Channel, ADC System Monitor w/ Temp Sensor, Internal/External Reference, & I2C Interface

Dependencies:   ADC128D818 mbed

Committer:
fblanc
Date:
Mon Sep 02 11:46:54 2013 +0000
Revision:
0:87bad6f4cad9
HelloWorld

Who changed what in which revision?

UserRevisionLine numberNew contents of line
fblanc 0:87bad6f4cad9 1 #include "mbed.h"
fblanc 0:87bad6f4cad9 2 #include "ADC128D818.h"
fblanc 0:87bad6f4cad9 3
fblanc 0:87bad6f4cad9 4 Serial pc(USBTX, USBRX);
fblanc 0:87bad6f4cad9 5 ADC128D818 adc(p9,p10,p26);
fblanc 0:87bad6f4cad9 6 AnalogOut dac(p18);
fblanc 0:87bad6f4cad9 7 int main()
fblanc 0:87bad6f4cad9 8 {
fblanc 0:87bad6f4cad9 9 dac=0.5;
fblanc 0:87bad6f4cad9 10 printf("helloword_ADC128D818\r\n");
fblanc 0:87bad6f4cad9 11 wait_ms(100);
fblanc 0:87bad6f4cad9 12 int err=adc.init(ADC_ADDRESS_LOW_LOW, ADC_MODE_0, ADC_VREF_INT, ADC_RATE_CONTINUOUS, ADC_ENABLE_TEMP & ADC_ENABLE_IN1, ADC_INT_TEMP);
fblanc 0:87bad6f4cad9 13 switch (err) {
fblanc 0:87bad6f4cad9 14 case -1:
fblanc 0:87bad6f4cad9 15 printf("No Device\r\n");
fblanc 0:87bad6f4cad9 16 break;
fblanc 0:87bad6f4cad9 17 case -2:
fblanc 0:87bad6f4cad9 18 printf("Busy\r\n");
fblanc 0:87bad6f4cad9 19 break;
fblanc 0:87bad6f4cad9 20 }
fblanc 0:87bad6f4cad9 21 adc.init_limit(ADC_CHANNEL_IN0, 0x80, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 22 adc.init_limit(ADC_CHANNEL_IN1, 0xA6, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 23 adc.init_limit(ADC_CHANNEL_IN2, 0x80, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 24 adc.init_limit(ADC_CHANNEL_IN3, 0x80, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 25 adc.init_limit(ADC_CHANNEL_IN4, 0x80, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 26 adc.init_limit(ADC_CHANNEL_IN5, 0x80, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 27 adc.init_limit(ADC_CHANNEL_IN6, 0x80, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 28 adc.init_limit(ADC_CHANNEL_TEMP, 30, ADC_LIMIT_HIGH);
fblanc 0:87bad6f4cad9 29 adc.init_limit(ADC_CHANNEL_TEMP, 29, ADC_LIMIT_LOW);
fblanc 0:87bad6f4cad9 30 char reg;
fblanc 0:87bad6f4cad9 31 reg=ADC_REG_Advanced_Configuration_Register;
fblanc 0:87bad6f4cad9 32 printf("reg %02X=%02X\r\n",reg,adc.read_register(reg));
fblanc 0:87bad6f4cad9 33
fblanc 0:87bad6f4cad9 34 printf("reg %02X=%02X\r\n",0x2C,adc.read_channel(0x0C));
fblanc 0:87bad6f4cad9 35 adc.start();
fblanc 0:87bad6f4cad9 36
fblanc 0:87bad6f4cad9 37 for(int i=0; i<1000; ++i) {
fblanc 0:87bad6f4cad9 38 wait(1);
fblanc 0:87bad6f4cad9 39
fblanc 0:87bad6f4cad9 40 printf("ch0:%d : %d\r\n",i,adc.read_channel(ADC_CHANNEL_IN0));
fblanc 0:87bad6f4cad9 41 for( char c=1; c<7 ;++c)
fblanc 0:87bad6f4cad9 42 printf("ch%d:%d : %04X\r\n",c,i,adc.read_channel(c));
fblanc 0:87bad6f4cad9 43
fblanc 0:87bad6f4cad9 44 printf("temp:%d : %f\r\n",i,(adc.read_channel(ADC_CHANNEL_TEMP)>>7)/2.0);
fblanc 0:87bad6f4cad9 45 reg=0x01;
fblanc 0:87bad6f4cad9 46 printf("reg %02X=%02X\r\n",reg,adc.read_register(reg));
fblanc 0:87bad6f4cad9 47 }
fblanc 0:87bad6f4cad9 48
fblanc 0:87bad6f4cad9 49 }