experiments

This commit is contained in:
Wastl Kraus 2023-03-24 13:44:49 +01:00
parent de2358e3c8
commit d7e8386129
3 changed files with 224 additions and 226 deletions

View File

@ -17,7 +17,7 @@ The checksum is calculated over the throttle value and the telemetry bit, so the
crc = (value ^ (value >> 4) ^ (value >> 8)) & 0x0F;
### Bidirectional DSHOT
Bidirictional DSHOT is also known as inverted DSHOT, because the signal level is inverted, so 1 is low and a 0 is high. This is done in order to let the ESC know, that we are operating in bidirectional mode and that it should be sending back eRPM telemetry packages.
Bidirectional DSHOT is also known as inverted DSHOT, because the signal level is inverted, so 1 is low and a 0 is high. This is done in order to let the ESC know, that we are operating in bidirectional mode and that it should be sending back eRPM telemetry packages.
#### Calculating the Bidirectional CRC
The calculation of the checksum is basically the same, just before the last step the values are inverted:

View File

@ -13,7 +13,7 @@ DShotRMT::DShotRMT(gpio_num_t gpio, rmt_channel_t rmtChannel)
dshot_config.rmt_channel = rmtChannel;
dshot_config.mem_block_num = uint8_t(RMT_CHANNEL_MAX - uint8_t(rmtChannel));
// ...create clean packet
// ...create empty packet
encode_dshot_to_rmt(DSHOT_NULL_PACKET);
}
@ -24,7 +24,7 @@ DShotRMT::DShotRMT(uint8_t pin, uint8_t channel)
dshot_config.rmt_channel = rmt_channel_t(channel);
dshot_config.mem_block_num = (RMT_CHANNEL_MAX - channel);
// ...create clean packet
// ...create empty packet
encode_dshot_to_rmt(DSHOT_NULL_PACKET);
}

View File

@ -4,8 +4,6 @@
// Author: derdoktor667
//
#pragma once
#ifndef _DSHOTRMT_h
#define _DSHOTRMT_h