-
Notifications
You must be signed in to change notification settings - Fork 7.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Co-authored-by: Jan Procházka <90197375+P-R-O-C-H-Y@users.noreply.github.com>
- Loading branch information
1 parent
1065e38
commit 4959b7f
Showing
3 changed files
with
362 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
#ifndef Pins_Arduino_h | ||
#define Pins_Arduino_h | ||
|
||
#include <stdint.h> | ||
#include "soc/soc_caps.h" | ||
|
||
#define USB_VID 0x303a | ||
#define USB_PID 0x1001 | ||
|
||
#define EXTERNAL_NUM_INTERRUPTS 46 | ||
#define NUM_DIGITAL_PINS 48 | ||
#define NUM_ANALOG_INPUTS 20 | ||
|
||
// Some boards have too low voltage on this pin (board design bug) | ||
// Use different pin with 3V and connect with 48 | ||
// and change this setup for the chosen pin (for example 38) | ||
static const uint8_t LED_BUILTIN = SOC_GPIO_PIN_COUNT+48; | ||
#define BUILTIN_LED LED_BUILTIN // backward compatibility | ||
#define LED_BUILTIN LED_BUILTIN | ||
#define RGB_BUILTIN LED_BUILTIN | ||
#define RGB_BRIGHTNESS 64 | ||
|
||
#define analogInputToDigitalPin(p) (((p)<20)?(analogChannelToDigitalPin(p)):-1) | ||
#define digitalPinToInterrupt(p) (((p)<48)?(p):-1) | ||
#define digitalPinHasPWM(p) (p < 46) | ||
|
||
static const uint8_t TX = 43; | ||
static const uint8_t RX = 44; | ||
|
||
static const uint8_t SDA = 8; | ||
static const uint8_t SCL = 9; | ||
|
||
static const uint8_t SS = 10; | ||
static const uint8_t MOSI = 11; | ||
static const uint8_t MISO = 13; | ||
static const uint8_t SCK = 12; | ||
|
||
static const uint8_t A0 = 1; | ||
static const uint8_t A1 = 2; | ||
static const uint8_t A2 = 3; | ||
static const uint8_t A3 = 4; | ||
static const uint8_t A4 = 5; | ||
static const uint8_t A5 = 6; | ||
static const uint8_t A6 = 7; | ||
static const uint8_t A7 = 8; | ||
static const uint8_t A8 = 9; | ||
static const uint8_t A9 = 10; | ||
static const uint8_t A10 = 11; | ||
static const uint8_t A11 = 12; | ||
static const uint8_t A12 = 13; | ||
static const uint8_t A13 = 14; | ||
static const uint8_t A14 = 15; | ||
static const uint8_t A15 = 16; | ||
static const uint8_t A16 = 17; | ||
static const uint8_t A17 = 18; | ||
static const uint8_t A18 = 19; | ||
static const uint8_t A19 = 20; | ||
|
||
static const uint8_t T1 = 1; | ||
static const uint8_t T2 = 2; | ||
static const uint8_t T3 = 3; | ||
static const uint8_t T4 = 4; | ||
static const uint8_t T5 = 5; | ||
static const uint8_t T6 = 6; | ||
static const uint8_t T7 = 7; | ||
static const uint8_t T8 = 8; | ||
static const uint8_t T9 = 9; | ||
static const uint8_t T10 = 10; | ||
static const uint8_t T11 = 11; | ||
static const uint8_t T12 = 12; | ||
static const uint8_t T13 = 13; | ||
static const uint8_t T14 = 14; | ||
|
||
static const uint8_t BAT_LV = 1; | ||
static const uint8_t CHG = 2; | ||
static const uint8_t TFT_CS = 10; | ||
static const uint8_t TFT_DC = 18; | ||
static const uint8_t TFT_RST = 14; | ||
static const uint8_t TFT_BCKL = 48; // TFT Backlight is enabled by soldering JP2 together | ||
static const uint8_t SD_CS = 21; | ||
static const uint8_t SD_CD = 47; // uSD Card Detect is enabled by soldering JP1 together. | ||
|
||
#define DISPLAY_PORTRAIT 2 | ||
#define DISPLAY_LANDSCAPE 3 | ||
#define DISPLAY_PORTRAIT_FLIP 0 | ||
#define DISPLAY_LANDSCAPE_FLIP 1 | ||
|
||
#define DISPLAY_WIDTH 240 | ||
#define DISPLAY_HEIGHT 320 | ||
|
||
/** | ||
* Get battery voltage in volts | ||
* @return Battery voltage in volts | ||
*/ | ||
float getBatteryVoltage(); | ||
/** | ||
* Get battery level in percent | ||
* @return Battery level in percent(0-100) | ||
*/ | ||
float getBatteryCapacity(); | ||
/** | ||
* Get battery charge state | ||
* @return Battery charge state(true=charging, false=not charging) | ||
*/ | ||
bool getChargingState(); | ||
/** | ||
* Set on charge start callback | ||
* @param func On charge start Callback function | ||
*/ | ||
void setOnChargeStart(void (*func)()); | ||
/** | ||
* Set on charge end callback | ||
* @param func On charge end Callback function | ||
*/ | ||
void setOnChargeEnd(void (*func)()); | ||
|
||
#endif /* Pins_Arduino_h */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
#include "Arduino.h" | ||
|
||
float getBatteryVoltage() { | ||
int analogVolt = analogReadMilliVolts(1); | ||
float voltage = analogVolt / 1000.0; | ||
voltage = voltage * (100.0+200.0) / 200.0; | ||
return voltage; | ||
} | ||
|
||
float getBatteryCapacity() { | ||
float voltage = getBatteryVoltage(); | ||
float capacity = (voltage - 3.3) / (4.2 - 3.3) * 100.0; | ||
capacity = constrain(capacity, 0, 100); | ||
return capacity; | ||
} | ||
|
||
bool getChargingState() { | ||
pinMode(CHG, INPUT_PULLUP); | ||
return !digitalRead(CHG); | ||
} | ||
|
||
void (*__onChargeStart__)(); | ||
void (*__onChargeEnd__)(); | ||
void setOnChargeStart(void (*func)()) { __onChargeStart__ = func; } | ||
void setOnChargeEnd(void (*func)()) { __onChargeEnd__ = func; } | ||
|
||
void ARDUINO_ISR_ATTR chargeIsr() { | ||
if (getChargingState()) { | ||
__onChargeStart__(); | ||
} else { | ||
__onChargeEnd__(); | ||
} | ||
} | ||
|
||
extern "C" void initVariant(void){ | ||
attachInterrupt(CHG, chargeIsr, CHANGE); | ||
analogReadResolution(12); | ||
} |