Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Mon Feb 27 16:20:15 2012 +0000
Revision:
9:9ca3db7ed7cb
Parent:
1:83960ee4d9a2
V0.89.2. GPS recv data is OK.

Who changed what in which revision?

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