mirror of https://github.com/meshcore-dev/MeshCore
7 changed files with 87 additions and 10 deletions
@ -0,0 +1,40 @@ |
|||||
|
#include "LoRaFEMControl.h" |
||||
|
|
||||
|
#include <Arduino.h> |
||||
|
#include "variant.h" |
||||
|
|
||||
|
static void enableFEMPower() { |
||||
|
bool wasOff = digitalRead(LORA_KCT8103L_EN) != HIGH; |
||||
|
digitalWrite(LORA_KCT8103L_EN, HIGH); |
||||
|
if (wasOff) { |
||||
|
delay(5); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
void LoRaFEMControl::init() { |
||||
|
pinMode(LORA_KCT8103L_EN, OUTPUT); |
||||
|
digitalWrite(LORA_KCT8103L_EN, HIGH); |
||||
|
delay(1); |
||||
|
pinMode(LORA_KCT8103L_TX_RX, OUTPUT); |
||||
|
digitalWrite(LORA_KCT8103L_TX_RX, LOW); |
||||
|
} |
||||
|
|
||||
|
void LoRaFEMControl::setSleepModeEnable() { |
||||
|
pinMode(LORA_KCT8103L_EN, OUTPUT); |
||||
|
digitalWrite(LORA_KCT8103L_EN, LOW); |
||||
|
} |
||||
|
|
||||
|
void LoRaFEMControl::setTxModeEnable() { |
||||
|
enableFEMPower(); |
||||
|
digitalWrite(LORA_KCT8103L_TX_RX, HIGH); |
||||
|
} |
||||
|
|
||||
|
void LoRaFEMControl::setRxModeEnable() { |
||||
|
enableFEMPower(); |
||||
|
digitalWrite(LORA_KCT8103L_TX_RX, LOW); |
||||
|
} |
||||
|
|
||||
|
void LoRaFEMControl::setRxModeEnableWhenMCUSleep() { |
||||
|
enableFEMPower(); |
||||
|
digitalWrite(LORA_KCT8103L_TX_RX, LOW); |
||||
|
} |
||||
@ -0,0 +1,13 @@ |
|||||
|
#pragma once |
||||
|
|
||||
|
class LoRaFEMControl { |
||||
|
public: |
||||
|
LoRaFEMControl() {} |
||||
|
virtual ~LoRaFEMControl() {} |
||||
|
|
||||
|
void init(); |
||||
|
void setSleepModeEnable(); |
||||
|
void setTxModeEnable(); |
||||
|
void setRxModeEnable(); |
||||
|
void setRxModeEnableWhenMCUSleep(); |
||||
|
}; |
||||
Loading…
Reference in new issue