Dependencies: ChaNFSSD mbed BMP085 SHT2x
AD7994.cpp@9:9ca3db7ed7cb, 2012-02-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |