Port to esp32
This commit is contained in:
parent
2954c30578
commit
57850dd0d9
5 changed files with 41 additions and 87 deletions
|
@ -3,5 +3,8 @@
|
|||
// for the documentation about the extensions.json format
|
||||
"recommendations": [
|
||||
"platformio.platformio-ide"
|
||||
],
|
||||
"unwantedRecommendations": [
|
||||
"ms-vscode.cpptools-extension-pack"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
#include <string.h>
|
||||
#include <Arduino.h>
|
||||
#include <EEPROM.h>
|
||||
#include <analogWrite.h>
|
||||
|
||||
LightController::LightController(const int bjtPins[], __SIZE_TYPE__ bjtCount)
|
||||
{
|
||||
|
@ -112,7 +113,7 @@ int LightController::clampState(int stateValue)
|
|||
void LightController::commitState(int index)
|
||||
{
|
||||
commitPinState(index);
|
||||
EEPROM.update(index, bjtState[index]);
|
||||
EEPROM.write(index, bjtState[index]);
|
||||
}
|
||||
|
||||
void LightController::commitPinState(int index)
|
||||
|
|
10
modules/control/Firmware/lib/PinMap/PinMap.h
Normal file
10
modules/control/Firmware/lib/PinMap/PinMap.h
Normal file
|
@ -0,0 +1,10 @@
|
|||
#define LEDR 16
|
||||
#define LEDG 17
|
||||
#define LEDB 18
|
||||
#define EXTDTR 22
|
||||
#define EXTRTS 23
|
||||
#define MUX 27
|
||||
#define SIG1A 32
|
||||
#define SIG1B 33
|
||||
#define SIG2A 34
|
||||
#define SIG2B 35
|
|
@ -1,77 +1,20 @@
|
|||
; PlatformIO Project Configuration File
|
||||
;
|
||||
; Build options: build flags, source filter
|
||||
; Upload options: custom upload port, speed and extra flags
|
||||
; Library options: dependencies, extra library storages
|
||||
; Advanced options: extra scripting
|
||||
;
|
||||
; Please visit documentation for the other options and examples
|
||||
; https://docs.platformio.org/page/projectconf.html
|
||||
|
||||
[platformio]
|
||||
default_envs = Upload_UART ; Default build target
|
||||
default_envs = Upload_UART
|
||||
|
||||
|
||||
; Common settings for all environments
|
||||
[env]
|
||||
platform = atmelavr
|
||||
framework = arduino
|
||||
|
||||
; TARGET SETTINGS
|
||||
; Chip in use
|
||||
board = ATmega328P
|
||||
; Clock frequency in [Hz]
|
||||
board_build.f_cpu = 16000000L
|
||||
|
||||
; BUILD OPTIONS
|
||||
; Comment out to enable LTO (this line unflags it)
|
||||
build_unflags = -flto
|
||||
; Extra build flags
|
||||
build_flags =
|
||||
|
||||
; SERIAL MONITOR OPTIONS
|
||||
; Serial monitor port defined in the Upload_UART environment
|
||||
monitor_port = ${env:Upload_UART.upload_port}
|
||||
; Serial monitor baud rate
|
||||
monitor_speed = 9600
|
||||
|
||||
|
||||
; Run the following command to upload with this environment
|
||||
; pio run -e Upload_UART -t upload
|
||||
[env:Upload_UART]
|
||||
; Serial bootloader protocol
|
||||
upload_protocol = custom
|
||||
; Serial upload port
|
||||
upload_port = COM5
|
||||
; Get upload baud rate defined in the fuses_bootloader environment
|
||||
board_upload.speed = ${env:fuses_bootloader.board_bootloader.speed}
|
||||
upload_flags =
|
||||
-C$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
|
||||
-p$BOARD_MCU
|
||||
-P${env:Upload_UART.upload_port}
|
||||
-carduino
|
||||
-v
|
||||
-V
|
||||
-D
|
||||
upload_command = python enableReset.py ${env:Upload_UART.upload_port} && avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
|
||||
|
||||
; Run the following command to upload with this environment
|
||||
; pio run -e Upload_ISP -t upload
|
||||
[env:Upload_ISP]
|
||||
; Custom upload procedure
|
||||
upload_protocol = custom
|
||||
; Avrdude upload flags
|
||||
upload_flags =
|
||||
-C$PROJECT_PACKAGES_DIR/tool-avrdude/avrdude.conf
|
||||
-p$BOARD_MCU
|
||||
-PUSB
|
||||
-cusbasp
|
||||
-D
|
||||
; Avrdude upload command
|
||||
upload_command = avrdude $UPLOAD_FLAGS -U flash:w:$SOURCE:i
|
||||
|
||||
|
||||
; Run the following command to set fuses
|
||||
; pio run -e fuses_bootloader -t fuses
|
||||
; Run the following command to set fuses + burn bootloader
|
||||
; pio run -e fuses_bootloader -t bootloader
|
||||
[env:fuses_bootloader]
|
||||
board_hardware.oscillator = external ; Oscillator type
|
||||
board_hardware.uart = uart0 ; Set UART to use for serial upload
|
||||
board_bootloader.speed = 115200 ; Set bootloader baud rate
|
||||
board_hardware.bod = 2.7v ; Set brown-out detection
|
||||
board_hardware.eesave = yes ; Preserve EEPROM when uploading using programmer
|
||||
upload_protocol = usbasp ; Use the USBasp as programmer
|
||||
upload_flags = ; Select USB as upload port and divide the SPI clock by 8
|
||||
-PUSB
|
||||
-B8
|
||||
platform = espressif32
|
||||
board = az-delivery-devkit-v4
|
||||
framework = arduino
|
||||
upload_port = COM8
|
||||
monitor_port = COM8
|
||||
lib_deps = erropix/ESP32 AnalogWrite@^0.2
|
||||
|
|
|
@ -2,26 +2,23 @@
|
|||
#include <LightController.h>
|
||||
#include <SerialCommunicator.h>
|
||||
#include <I2CCommunicator.h>
|
||||
#include <PinMap.h>
|
||||
|
||||
StreamCommunicator *computer;
|
||||
StreamCommunicator *console;
|
||||
LightController *light;
|
||||
const int STEPS = 5;
|
||||
|
||||
void setup()
|
||||
{
|
||||
int bjtCount = 4;
|
||||
const int bjtPin[bjtCount] = {6, 5, 3, 10};
|
||||
const int bjtPin[bjtCount] = {SIG1A, SIG1B, SIG2A, SIG2B};
|
||||
computer = new SerialCommunicator(Serial, 9600, 5, 50);
|
||||
console = new I2CCommunicator(Wire, 9, 5, 50);
|
||||
light = new LightController(bjtPin, bjtCount);
|
||||
}
|
||||
|
||||
void loop()
|
||||
{
|
||||
light->updateState(console->receiveMessage(), STEPS);
|
||||
light->updateState(computer->receiveMessage(), STEPS);
|
||||
computer->sendMessage(light->getBjtState(), light->getBjtCount());
|
||||
computer->clearBuffer();
|
||||
console->clearBuffer();
|
||||
}
|
Reference in a new issue