test

Dependents:   LSI_Compass loop_test CanSat-C_test test

Committer:
miyajitakenari
Date:
Sat Nov 06 03:07:01 2021 +0000
Revision:
5:61aadb168ef3
Parent:
0:e190455d7dbb
a

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ushiroji 0:e190455d7dbb 1 #include "ATP3011.h"
ushiroji 0:e190455d7dbb 2
ushiroji 0:e190455d7dbb 3 ATP3011::ATP3011(PinName sda, PinName scl, int addr):_i2c(sda, scl)
ushiroji 0:e190455d7dbb 4 {
ushiroji 0:e190455d7dbb 5 _addr = addr;
ushiroji 0:e190455d7dbb 6 _poll_wait.reset();
ushiroji 0:e190455d7dbb 7 _poll_wait.start();
ushiroji 0:e190455d7dbb 8 }
ushiroji 0:e190455d7dbb 9
ushiroji 0:e190455d7dbb 10 bool ATP3011::IsActive(int timeout_ms)
ushiroji 0:e190455d7dbb 11 {
ushiroji 0:e190455d7dbb 12 wait_ms(AQTK_STARTUP_WAIT_MS);
ushiroji 0:e190455d7dbb 13 Timer t;
ushiroji 0:e190455d7dbb 14 t.reset();
ushiroji 0:e190455d7dbb 15 t.start();
ushiroji 0:e190455d7dbb 16 while(t.read_ms() < timeout_ms) {
ushiroji 0:e190455d7dbb 17 _poll_wait.reset();
ushiroji 0:e190455d7dbb 18 if (_i2c.write(_addr, NULL, 0)== 0) {
ushiroji 0:e190455d7dbb 19 return true;
ushiroji 0:e190455d7dbb 20 }
ushiroji 0:e190455d7dbb 21 wait_ms(AQTK_POLL_WAIT_MS);
ushiroji 0:e190455d7dbb 22 }
ushiroji 0:e190455d7dbb 23 return false;
ushiroji 0:e190455d7dbb 24 }
ushiroji 0:e190455d7dbb 25
ushiroji 0:e190455d7dbb 26 void ATP3011::Synthe(const char* msg)
ushiroji 0:e190455d7dbb 27 {
ushiroji 0:e190455d7dbb 28 while(IsBusy()) {
ushiroji 0:e190455d7dbb 29 ;
ushiroji 0:e190455d7dbb 30 }
ushiroji 0:e190455d7dbb 31 Write(msg);
ushiroji 0:e190455d7dbb 32 Write("\r");
ushiroji 0:e190455d7dbb 33 }
ushiroji 0:e190455d7dbb 34
ushiroji 0:e190455d7dbb 35 void ATP3011::Write(const char *msg)
ushiroji 0:e190455d7dbb 36 {
ushiroji 0:e190455d7dbb 37 _i2c.write(_addr, msg, strlen(msg));
ushiroji 0:e190455d7dbb 38 _poll_wait.reset();
ushiroji 0:e190455d7dbb 39 }
ushiroji 0:e190455d7dbb 40
ushiroji 0:e190455d7dbb 41 bool ATP3011::IsBusy()
ushiroji 0:e190455d7dbb 42 {
ushiroji 0:e190455d7dbb 43 if (AQTK_POLL_WAIT_MS > _poll_wait.read_ms()) {
ushiroji 0:e190455d7dbb 44 return true;
ushiroji 0:e190455d7dbb 45 }
ushiroji 0:e190455d7dbb 46 _poll_wait.reset();
ushiroji 0:e190455d7dbb 47 char c = 0x00;
ushiroji 0:e190455d7dbb 48 if (_i2c.read(_addr, &c, 1) != 0) {
ushiroji 0:e190455d7dbb 49 return false;
ushiroji 0:e190455d7dbb 50 }
ushiroji 0:e190455d7dbb 51 return c == '*' || c == 0xff;
ushiroji 0:e190455d7dbb 52 }
ushiroji 0:e190455d7dbb 53