test ADC128D818 12-Bit, 8-Channel, ADC System Monitor w/ Temp Sensor, Internal/External Reference, & I2C Interface
main.cpp@0:87bad6f4cad9, 2013-09-02 (annotated)
- Committer:
- fblanc
- Date:
- Mon Sep 02 11:46:54 2013 +0000
- Revision:
- 0:87bad6f4cad9
HelloWorld
Who changed what in which revision?
User | Revision | Line number | New 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 | } |