RadioLib
Universal wireless communication library for Arduino
Hal.h
1 #include <stdint.h>
2 #include <stddef.h>
3 #if !defined(_RADIOLIB_HAL_H)
4 #define _RADIOLIB_HAL_H
5 
11 class Hal {
12  public:
13  const uint32_t GpioModeInput;
14  const uint32_t GpioModeOutput;
15  const uint32_t GpioLevelLow;
16  const uint32_t GpioLevelHigh;
17  const uint32_t GpioInterruptRising;
18  const uint32_t GpioInterruptFalling;
19 
20  Hal(const uint32_t input, const uint32_t output, const uint32_t low, const uint32_t high, const uint32_t rising, const uint32_t falling);
21 
22  virtual void init();
23  virtual void term();
24 
25  virtual void pinMode(uint32_t pin, uint32_t mode) = 0;
26  virtual void digitalWrite(uint32_t pin, uint32_t value) = 0;
27  virtual uint32_t digitalRead(uint32_t pin) = 0;
28  virtual void attachInterrupt(uint32_t interruptNum, void (*interruptCb)(void), uint32_t mode) = 0;
29  virtual void detachInterrupt(uint32_t interruptNum) = 0;
30  virtual void delay(unsigned long ms) = 0;
31  virtual void delayMicroseconds(unsigned long us) = 0;
32  virtual unsigned long millis() = 0;
33  virtual unsigned long micros() = 0;
34  virtual long pulseIn(uint32_t pin, uint32_t state, unsigned long timeout) = 0;
35  virtual void spiBegin() = 0;
36  virtual void spiBeginTransaction() = 0;
37  virtual uint8_t spiTransfer(uint8_t b) = 0;
38  virtual void spiEndTransaction() = 0;
39  virtual void spiEnd() = 0;
40 
41  virtual void tone(uint32_t pin, unsigned int frequency, unsigned long duration = 0);
42  virtual void noTone(uint32_t pin);
43  virtual void yield();
44  virtual uint32_t pinToInterrupt(uint32_t pin);
45 };
46 
47 #endif
Hardware abstraction library base interface.
Definition: Hal.h:11