RadioLib
Universal wireless communication library for Arduino
ArduinoHal.h
1 #include "TypeDef.h"
2 
3 #if !defined(_RADIOLIB_ARDUINOHAL_H)
4 #define _RADIOLIB_ARDUINOHAL_H
5 
6 #if defined(RADIOLIB_BUILD_ARDUINO)
7 
8 #if defined(RADIOLIB_MBED_TONE_OVERRIDE)
9 #include "mbed.h"
10 #endif
11 
12 #include "Hal.h"
13 #include <stdint.h>
14 
15 #include <SPI.h>
16 
23 class ArduinoHal : public Hal {
24  public:
28  ArduinoHal();
29 
37  ArduinoHal(SPIClass& spi, SPISettings spiSettings = RADIOLIB_DEFAULT_SPI_SETTINGS);
38 
39  void init() override;
40  void term() override;
41 
42  void pinMode(uint32_t pin, uint32_t mode) override;
43  void digitalWrite(uint32_t pin, uint32_t value) override;
44  uint32_t digitalRead(uint32_t pin) override;
45  void attachInterrupt(uint32_t interruptNum, void (*interruptCb)(void), uint32_t mode) override;
46  void detachInterrupt(uint32_t interruptNum) override;
47  void delay(unsigned long ms) override;
48  void delayMicroseconds(unsigned long us) override;
49  unsigned long millis() override;
50  unsigned long micros() override;
51  long pulseIn(uint32_t pin, uint32_t state, unsigned long timeout) override;
52  void spiBegin() override;
53  void spiBeginTransaction() override;
54  uint8_t spiTransfer(uint8_t b) override;
55  void spiEndTransaction() override;
56  void spiEnd() override;
57  void tone(uint32_t pin, unsigned int frequency, unsigned long duration = 0) override;
58  void noTone(uint32_t pin) override;
59  void yield() override;
60  uint32_t pinToInterrupt(uint32_t pin) override;
61 
62 #if !defined(RADIOLIB_GODMODE)
63  private:
64 #endif
65  SPIClass* _spi = NULL;
66  SPISettings _spiSettings = RADIOLIB_DEFAULT_SPI_SETTINGS;
67  bool _initInterface = false;
68 
69  #if defined(RADIOLIB_MBED_TONE_OVERRIDE)
70  mbed::PwmOut *pwmPin = NULL;
71  #endif
72 
73  #if defined(ESP32)
74  int32_t _prev = -1;
75  #endif
76 };
77 
78 #endif
79 #endif
Hardware abstraction library base interface.
Definition: Hal.h:11