This commit is contained in:
Alex
2021-06-14 21:53:39 +03:00
parent 1e37f86364
commit ecfcdf1bf9
4 changed files with 119 additions and 96 deletions
+31 -5
View File
@@ -54,16 +54,17 @@ Gyver433_xx<пин, буфер, CRC> xx;
## Использование
```cpp
// ========= Gyver433_TX =========
void sendData(T &data); // отправить данные любого типа (CRC добавится автоматически)
void sendData(T &data); // отправить данные любого типа (CRC добавляется автоматически)
void write(uint8_t* buf, uint8_t size); // отправить массив байт указанного размера (CRC не добавляется)
uint8_t buffer[]; // доступ к буферу для отладки
// ========= Gyver433_RX =========
uint8_t tick(); // неблокирующий приём, вернёт кол-во успешно принятых байт
uint8_t tickWait(); // блокирующий приём, вернёт кол-во успешно принятых байт
uint16_t tick(); // неблокирующий приём, вернёт кол-во успешно принятых байт
uint16_t tickWait(); // блокирующий приём (более надёжный), вернёт кол-во успешно принятых байт
uint16_t tickISR(); // тикер для прерывания по CHANGE (см. пример isr_rx)
bool readData(T &data); // прочитает буфер в любой тип данных (в указанную переменную)
int getSize(); // получить размер принятых данных
bool gotData(); // вернёт true при получении корректных данных (если tick опрашивается в другом месте)
uint16_t getSize(); // получить размер принятых данных
uint16_t gotData(); // вернёт количество успешно принятых в tickISR() байт (см. пример isr_rx)
uint8_t buffer[]; // доступ к буферу для отладки
// ============= CRC =============
@@ -115,6 +116,31 @@ void loop() {
}
```
### Приём в прерывании
```cpp
#define G433_SLOW_MODE
#include <Gyver433.h>
Gyver433_RX<2, 20> rx; // указали пин и размер буфера
void setup() {
Serial.begin(9600);
attachInterrupt(0, isr, CHANGE); // прерывание пина радио по CHANGE
}
void isr() {
rx.tickISR(); // спец тикер вызывается в прерывании
}
void loop() {
// вернёт количество удачно принятых в прерывании байт
if (rx.gotData()) {
Serial.write(rx.buffer, rx.size);
Serial.println();
}
delay(200); // имитация загруженного кода
}
```
<a id="versions"></a>
## Версии
- v1.0