Driver for the HSCDTD008A Geomagnetic Sensor.
Revision 1:b90695c17177, committed 2021-06-20
- Comitter:
- hudakz
- Date:
- Sun Jun 20 14:18:02 2021 +0000
- Parent:
- 0:ccf912737de7
- Commit message:
- Driver for the HSCDTD008A Geomagnetic Sensor.
Changed in this revision
| HSCDTD008A.cpp | Show annotated file Show diff for this revision Revisions of this file |
| HSCDTD008A.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/HSCDTD008A.cpp Sun Jun 20 13:55:42 2021 +0000
+++ b/HSCDTD008A.cpp Sun Jun 20 14:18:02 2021 +0000
@@ -69,9 +69,8 @@
* @param
* @retval
*/
-HSCDTD008A::HSCDTD008A(PinName sda, PinName scl, PinName drdy /*= NC*/, uint8_t addr /*= 0x0C*/ ) :
+HSCDTD008A::HSCDTD008A(PinName sda, PinName scl, uint8_t addr /*= 0x0C*/ ) :
_i2c(new I2C(sda, scl)),
- _drdy(drdy),
_addr(addr << 1), // convert to 8bit address
_x(0),
_y(0),
@@ -126,7 +125,7 @@
* @param
* @retval
*/
-uint8_t HSCDTD008A::selftest()
+uint8_t HSCDTD008A::selfTest()
{
const char start_selftest[] = { CTRL3, (1 << STC) };
char ret;
@@ -239,7 +238,7 @@
while (true) {
ThisThread::sleep_for(1ms);
- // read the Status register
+ // read Status register
_i2c->write(_addr, &STAT, 1);
_i2c->read(_addr, &ret, 1);
@@ -287,7 +286,7 @@
{
char ret;
- // read the FIFO pointer register
+ // read FIFO pointer register
_i2c->write(_addr, &FFPT, 1);
_i2c->read(_addr, &ret, 1);
--- a/HSCDTD008A.h Sun Jun 20 13:55:42 2021 +0000
+++ b/HSCDTD008A.h Sun Jun 20 14:18:02 2021 +0000
@@ -1,21 +1,3 @@
-/*
- * Copyright (c) 2020 Zoltan Hudak <hudakz@outlook.com>
- * All rights reserved.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
#ifndef HSCDTD008A_H
#define HSCDTD008A_H
@@ -100,13 +82,13 @@
class HSCDTD008A
{
public:
- HSCDTD008A(PinName sda, PinName scl, PinName drdy = NC, uint8_t addr = 0x0C);
+ HSCDTD008A(PinName sda, PinName scl, uint8_t addr = 0x0C);
int16_t toInt16(uint16_t word);
void standbyMode();
void normalMode(uint8_t odr = 0b01, bool enableDataReady = false);
void forcedMode();
void softReset();
- uint8_t selftest();
+ uint8_t selfTest();
void calibrateOffsets();
void setDriftOffsetX(uint16_t val);
void setDriftOffsetY(uint16_t val);
@@ -125,15 +107,11 @@
float x();
float y();
float z();
- float bearing();
private:
I2C* _i2c;
- InterruptIn _drdy;
const uint8_t _addr;
uint16_t _x;
uint16_t _y;
uint16_t _z;
- Thread _thread;
- EventQueue _eventQueue;
};
#endif // HSCDTD008A_H