Rev 5 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 5 | Rev 6 | ||
|---|---|---|---|
| Line 40... | Line 40... | ||
| 40 | 40 | ||
| 41 | void SHT21::reset() { |
41 | void SHT21::reset() { |
| 42 | 42 | ||
| 43 | 43 | ||
| 44 | const uint8_t buff = SOFT_RESET; |
44 | const uint8_t buff = SOFT_RESET; |
| 45 | msg_t err = i2cMasterTransmit(&I2CD2, I2C_ADD, buff, sizeof(buff), 0,0); |
45 | msg_t err = i2cMasterTransmit(m_driver, I2C_ADD, &buff, sizeof(buff), 0,0); |
| 46 | if(err != MSG_OK) |
46 | if(err != MSG_OK) |
| 47 | 47 | ||
| 48 | 48 | ||
| 49 | chThdSleepMillisec(15); // wait for SHT to reset |
49 | chThdSleepMilliseconds(15); // wait for SHT to reset |
| 50 | } |
50 | } |
| 51 | 51 | ||
| 52 | msg_t SHT21::getSerialNumber(uint8_t * serialNumber) { |
52 | msg_t SHT21::getSerialNumber(uint8_t * serialNumber) { |
| 53 | 53 | ||
| 54 | uint8_t serialNumber[8]; |
- | |
| 55 | 54 | ||
| 56 | // read memory location 1 |
55 | // read memory location 1 |
| 57 | const uint8_t buff = { 0xFA,0xOF }; |
56 | const uint8_t buff []= { 0xFA,0x0F }; |
| 58 | 57 | ||
| 59 | uin8_r snRbuff[8]; |
58 | uint8_t rxbuff[8]; |
| 60 | msg_t err = i2cMasterTransmit(&I2CD2, I2C_ADD, buff, sizeof(buff), &snRbuff, sizeof(snRbuff)); |
59 | msg_t err = i2cMasterTransmit(m_driver, I2C_ADD, buff, sizeof(buff), &rxbuff[0], sizeof(rxbuff)); |
| 61 | if(err != MSG_OK) |
60 | if(err != MSG_OK) |
| 62 | return err; |
61 | return err; |
| 63 | 62 | ||
| 64 | serialNumber[5] = snRbuff[0]; // read SNB_3 |
63 | serialNumber[5] = rxbuff[0]; // read SNB_3 |
| 65 | // CRC SNB_3 not used |
64 | // CRC SNB_3 not used |
| 66 | serialNumber[4] = snrBuff[2]; // read SNB_2 |
65 | serialNumber[4] = rxbuff[2]; // read SNB_2 |
| 67 | // CRC SNB_2 not used |
66 | // CRC SNB_2 not used |
| 68 | serialNumber[3] = snrBuff[4]; // read SNB_1 |
67 | serialNumber[3] = rxbuff[4]; // read SNB_1 |
| 69 | // CRC SNB_1 not used |
68 | // CRC SNB_1 not used |
| 70 | serialNumber[2] = snrBuff[7]; // read SNB_0 |
69 | serialNumber[2] = rxbuff[7]; // read SNB_0 |
| 71 | // CRC SNB_0 not used |
70 | // CRC SNB_0 not used |
| 72 | 71 | ||
| 73 | // read memory location 2 |
72 | // read memory location 2 |
| 74 | const uint8_t buff2 = {0xFC,0xC9}; |
73 | const uint8_t buff2[] = {0xFC,0xC9}; |
| 75 | 74 | ||
| 76 | err = i2cMasterTransmit(&I2CD2, I2C_ADD, buff2, sizeof(buff2), &snRbuff, 6); |
75 | err = i2cMasterTransmit(m_driver, I2C_ADD, buff2, sizeof(buff2), &rxbuff[0], 6); |
| 77 | 76 | ||
| 78 | 77 | ||
| 79 | serialNumber[1] = snRbuff[0]; // read SNC_1 |
78 | serialNumber[1] = rxbuff[0]; // read SNC_1 |
| 80 | serialNumber[0] = snRbuff[1]; // read SNC_0 |
79 | serialNumber[0] = rxbuff[1]; // read SNC_0 |
| 81 | serialNumber[7] = snRbuff[3]; // read SNA_1 |
80 | serialNumber[7] = rxbuff[3]; // read SNA_1 |
| 82 | serialNumber[6] = snRbuff[4]; // read SNA_0 |
81 | serialNumber[6] = rxbuff[4]; // read SNA_0 |
| 83 | 82 | ||
| 84 | return serialNumber[return_sn]; |
83 | return MSG_OK; |
| 85 | } |
84 | } |
| 86 | 85 | ||
| 87 | //============================================================================== |
86 | //============================================================================== |
| 88 | // PRIVATE |
87 | // PRIVATE |
| 89 | //============================================================================== |
88 | //============================================================================== |
| Line 92... | Line 91... | ||
| 92 | uint8_t checksum; |
91 | uint8_t checksum; |
| 93 | uint8_t data[2]; |
92 | uint8_t data[2]; |
| 94 | uint16_t result; |
93 | uint16_t result; |
| 95 | 94 | ||
| 96 | uint8_t rxBuff[3]; |
95 | uint8_t rxBuff[3]; |
| - | 96 | ||
| 97 | err = i2cMasterTransmit(&I2CD2, I2C_ADD, &command, 1, &rxRbuff, 3); |
97 | msg_t err = i2cMasterTransmit(m_driver, I2C_ADD, &command, 1, &rxBuff[0], 3); |
| 98 | if (err != MSG_OK) |
98 | if (err != MSG_OK) |
| 99 | 99 | ||
| 100 | data[0] = rxBuff[0]; // read data (MSB) |
100 | data[0] = rxBuff[0]; // read data (MSB) |
| 101 | data[1] = rxBuff[1]; // read data (LSB) |
101 | data[1] = rxBuff[1]; // read data (LSB) |
| 102 | checksum = rxBuff[2]; // read checksum |
102 | checksum = rxBuff[2]; // read checksum |