mirror of
https://github.com/BotChain-Robots/firmware.git
synced 2026-07-08 09:37:21 +02:00
50 lines
1.4 KiB
C
50 lines
1.4 KiB
C
#ifdef RMT_COMMUNICATIONS
|
|
|
|
#include "driver/rmt_tx.h"
|
|
|
|
#define RMT_RESOLUTION_HZ 4 * 1000 * 1000 // 4 MHz resolution
|
|
#define RMT_DURATION_SYMBOL 2 //1 us
|
|
|
|
#define RMT_DURATION_MAX (2 * RMT_DURATION_SYMBOL)
|
|
|
|
//MANCHESTER ENCODING (ETHERNET STANDARD)
|
|
|
|
/**
|
|
* @brief This struct represents a 1 symbol being transmitted over RMT. This will create a falling edge (low for `RMT_DURATION_SYMBOL` and high for `RMT_DURATION_SYMBOL`)
|
|
*
|
|
*/
|
|
static const rmt_symbol_word_t RMT_SYMBOL_ONE = {
|
|
.duration0 = RMT_DURATION_SYMBOL,
|
|
.level0 = 1,
|
|
.duration1 = RMT_DURATION_SYMBOL,
|
|
.level1 = 0,
|
|
};
|
|
|
|
/**
|
|
* @brief This struct represents a 0 symbol being transmitted over RMT. This will create a rising edge (low for `RMT_DURATION_SYMBOL` and high for `RMT_DURATION_SYMBOL`)
|
|
*
|
|
*/
|
|
static const rmt_symbol_word_t RMT_SYMBOL_ZERO = {
|
|
.duration0 = RMT_DURATION_SYMBOL,
|
|
.level0 = 0,
|
|
.duration1 = RMT_DURATION_SYMBOL,
|
|
.level1 = 1,
|
|
};
|
|
|
|
//not used at the moment
|
|
|
|
// static const rmt_symbol_word_t RMT_SYMBOL_HIGH_STOP = {
|
|
// .duration0 = RMT_DURATION_SYMBOL / 2,
|
|
// .level0 = 1,
|
|
// .duration1 = RMT_DURATION_SYMBOL / 2,
|
|
// .level1 = 0,
|
|
// };
|
|
|
|
// static const rmt_symbol_word_t RMT_SYMBOL_LOW_STOP = {
|
|
// .duration0 = RMT_DURATION_SYMBOL / 2,
|
|
// .level0 = 0,
|
|
// .duration1 = RMT_DURATION_SYMBOL / 2,
|
|
// .level1 = 1,
|
|
// };
|
|
|
|
#endif //RMT_COMMUNICATIONS
|