Subversion Repositories ChibiGauge

Rev

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