Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Mon Dec 26 15:58:32 2011 +0000
Revision:
0:6089ae824f06
Child:
1:83960ee4d9a2
1st Release

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tosihisa 0:6089ae824f06 1
tosihisa 0:6089ae824f06 2 #include "mbed.h"
tosihisa 0:6089ae824f06 3 #include "AD7994.h"
tosihisa 0:6089ae824f06 4
tosihisa 0:6089ae824f06 5 #define AD7994ADDR (0x44)
tosihisa 0:6089ae824f06 6
tosihisa 0:6089ae824f06 7 AD7994::AD7994(PinName p_sda, PinName p_scl) : i2c(p_sda, p_scl)
tosihisa 0:6089ae824f06 8 {
tosihisa 0:6089ae824f06 9 memset(ch_val,0,sizeof(ch_val));
tosihisa 0:6089ae824f06 10 }
tosihisa 0:6089ae824f06 11
tosihisa 0:6089ae824f06 12 void AD7994::Start()
tosihisa 0:6089ae824f06 13 {
tosihisa 0:6089ae824f06 14 char cmd_set[] = { 0x02,0x38 };
tosihisa 0:6089ae824f06 15 char cmd_tim[] = { 0x03,0x01 };
tosihisa 0:6089ae824f06 16 i2c.write(AD7994ADDR,cmd_set,sizeof(cmd_set));
tosihisa 0:6089ae824f06 17 i2c.write(AD7994ADDR,cmd_tim,sizeof(cmd_tim));
tosihisa 0:6089ae824f06 18 }
tosihisa 0:6089ae824f06 19
tosihisa 0:6089ae824f06 20 unsigned short AD7994::getVal()
tosihisa 0:6089ae824f06 21 {
tosihisa 0:6089ae824f06 22 char cmd[] = { 0x00 };
tosihisa 0:6089ae824f06 23 char buf[2];
tosihisa 0:6089ae824f06 24 unsigned short res = 0;
tosihisa 0:6089ae824f06 25 i2c.write(AD7994ADDR,cmd,sizeof(cmd));
tosihisa 0:6089ae824f06 26 i2c.read(AD7994ADDR,buf,sizeof(buf));
tosihisa 0:6089ae824f06 27 res = buf[0];
tosihisa 0:6089ae824f06 28 res = (res << 8) | buf[1];
tosihisa 0:6089ae824f06 29 return res;
tosihisa 0:6089ae824f06 30 }
tosihisa 0:6089ae824f06 31
tosihisa 0:6089ae824f06 32 void AD7994::update()
tosihisa 0:6089ae824f06 33 {
tosihisa 0:6089ae824f06 34 int i;
tosihisa 0:6089ae824f06 35 unsigned short res;
tosihisa 0:6089ae824f06 36 unsigned short idx;
tosihisa 0:6089ae824f06 37 for(i=0;i<4;i++){
tosihisa 0:6089ae824f06 38 res = getVal();
tosihisa 0:6089ae824f06 39 idx = (res >> 12) & 0x03;
tosihisa 0:6089ae824f06 40 ch_val[idx] = res & 0x0FFF;
tosihisa 0:6089ae824f06 41 }
tosihisa 0:6089ae824f06 42 }
tosihisa 0:6089ae824f06 43
tosihisa 0:6089ae824f06 44 unsigned short AD7994::readChn(int chnNo)
tosihisa 0:6089ae824f06 45 {
tosihisa 0:6089ae824f06 46 return ch_val[chnNo];
tosihisa 0:6089ae824f06 47 }