File tree 1 file changed +8
-5
lines changed
libraries/Nicla_System/src
1 file changed +8
-5
lines changed Original file line number Diff line number Diff line change 2
2
#include < I2C.h>
3
3
#include " BQ25120A.h"
4
4
#include " Nicla_System.h"
5
+ #include " DigitalOut.h"
6
+
7
+ static mbed::DigitalOut cd (p25);
5
8
6
9
uint8_t BQ25120A::getStatus ()
7
10
{
@@ -11,29 +14,29 @@ uint8_t BQ25120A::getStatus()
11
14
12
15
void BQ25120A::writeByte (uint8_t address, uint8_t subAddress, uint8_t data)
13
16
{
14
- digitalWrite (p25, HIGH) ;
17
+ cd = 1 ;
15
18
nicla::i2c_mutex.lock ();
16
19
Wire1.beginTransmission (address);
17
20
Wire1.write (subAddress);
18
21
Wire1.write (data);
19
22
Wire1.endTransmission ();
20
23
nicla::i2c_mutex.unlock ();
21
- digitalWrite (p25, LOW) ;
24
+ cd = 0 ;
22
25
}
23
26
24
27
uint8_t BQ25120A::readByte (uint8_t address, uint8_t subAddress)
25
28
{
26
- digitalWrite (p25, HIGH) ;
29
+ cd = 1 ;
27
30
nicla::i2c_mutex.lock ();
28
31
Wire1.beginTransmission (address);
29
32
Wire1.write (subAddress);
30
33
Wire1.endTransmission (false );
31
34
Wire1.requestFrom (address, 1 );
32
- uint32_t timeout = 1000 ;
35
+ uint32_t timeout = 100 ;
33
36
uint32_t start_time = millis ();
34
37
while (!Wire1.available () && (millis () - start_time) < timeout) {}
35
38
uint8_t ret = Wire1.read ();
36
39
nicla::i2c_mutex.unlock ();
37
- digitalWrite (p25, LOW) ;
40
+ cd = 0 ;
38
41
return ret;
39
42
}
You can’t perform that action at this time.
0 commit comments