mirror of
https://github.com/Xinyuan-LilyGO/TTGO_TWatch_Library.git
synced 2026-03-15 12:36:57 +01:00
106 lines
2.8 KiB
C++
106 lines
2.8 KiB
C++
#include "config.h"
|
|
|
|
TTGOClass *watch;
|
|
TFT_eSPI *tft;
|
|
BMA *sensor;
|
|
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
|
|
// Get TTGOClass instance
|
|
watch = TTGOClass::getWatch();
|
|
|
|
// Initialize the hardware, the BMA423 sensor has been initialized internally
|
|
watch->begin();
|
|
|
|
// Turn on the backlight
|
|
watch->openBL();
|
|
|
|
//Receive objects for easy writing
|
|
tft = watch->tft;
|
|
sensor = watch->bma;
|
|
|
|
// Accel parameter structure
|
|
Acfg cfg;
|
|
/*!
|
|
Output data rate in Hz, Optional parameters:
|
|
- BMA4_OUTPUT_DATA_RATE_0_78HZ
|
|
- BMA4_OUTPUT_DATA_RATE_1_56HZ
|
|
- BMA4_OUTPUT_DATA_RATE_3_12HZ
|
|
- BMA4_OUTPUT_DATA_RATE_6_25HZ
|
|
- BMA4_OUTPUT_DATA_RATE_12_5HZ
|
|
- BMA4_OUTPUT_DATA_RATE_25HZ
|
|
- BMA4_OUTPUT_DATA_RATE_50HZ
|
|
- BMA4_OUTPUT_DATA_RATE_100HZ
|
|
- BMA4_OUTPUT_DATA_RATE_200HZ
|
|
- BMA4_OUTPUT_DATA_RATE_400HZ
|
|
- BMA4_OUTPUT_DATA_RATE_800HZ
|
|
- BMA4_OUTPUT_DATA_RATE_1600HZ
|
|
*/
|
|
cfg.odr = BMA4_OUTPUT_DATA_RATE_100HZ;
|
|
/*!
|
|
G-range, Optional parameters:
|
|
- BMA4_ACCEL_RANGE_2G
|
|
- BMA4_ACCEL_RANGE_4G
|
|
- BMA4_ACCEL_RANGE_8G
|
|
- BMA4_ACCEL_RANGE_16G
|
|
*/
|
|
cfg.range = BMA4_ACCEL_RANGE_2G;
|
|
/*!
|
|
Bandwidth parameter, determines filter configuration, Optional parameters:
|
|
- BMA4_ACCEL_OSR4_AVG1
|
|
- BMA4_ACCEL_OSR2_AVG2
|
|
- BMA4_ACCEL_NORMAL_AVG4
|
|
- BMA4_ACCEL_CIC_AVG8
|
|
- BMA4_ACCEL_RES_AVG16
|
|
- BMA4_ACCEL_RES_AVG32
|
|
- BMA4_ACCEL_RES_AVG64
|
|
- BMA4_ACCEL_RES_AVG128
|
|
*/
|
|
cfg.bandwidth = BMA4_ACCEL_NORMAL_AVG4;
|
|
|
|
/*! Filter performance mode , Optional parameters:
|
|
- BMA4_CIC_AVG_MODE
|
|
- BMA4_CONTINUOUS_MODE
|
|
*/
|
|
cfg.perf_mode = BMA4_CONTINUOUS_MODE;
|
|
|
|
// Configure the BMA423 accelerometer
|
|
sensor->accelConfig(cfg);
|
|
|
|
// Enable BMA423 accelerometer
|
|
sensor->enableAccel();
|
|
|
|
// You can also turn it off
|
|
// sensor->disableAccel();
|
|
|
|
// Some display settings
|
|
tft->setTextColor(random(0xFFFF));
|
|
tft->drawString("BMA423 accel", 25, 50, 4);
|
|
tft->setTextFont(4);
|
|
tft->setTextColor(TFT_WHITE, TFT_BLACK);
|
|
}
|
|
|
|
void loop()
|
|
{
|
|
Accel acc;
|
|
|
|
// Get acceleration data
|
|
bool res = sensor->getAccel(acc);
|
|
|
|
if (res == false) {
|
|
Serial.println("getAccel FAIL");
|
|
} else {
|
|
// Show the data
|
|
tft->fillRect(98, 100, 70, 85, TFT_BLACK);
|
|
tft->setCursor(80, 100);
|
|
tft->print("X:"); tft->println(acc.x);
|
|
tft->setCursor(80, 130);
|
|
tft->print("Y:"); tft->println(acc.y);
|
|
tft->setCursor(80, 160);
|
|
tft->print("Z:"); tft->println(acc.z);
|
|
}
|
|
delay(100);
|
|
}
|