Try to de-flicker transmission scheduling
This commit is contained in:
parent
621d39437a
commit
7b7b18cb14
1 changed files with 11 additions and 22 deletions
|
|
@ -17,7 +17,6 @@ static void dma_tx_waveform(size_t table_size, const uint16_t *table);
|
|||
|
||||
#define SYNC_INTERVAL 13
|
||||
|
||||
static size_t time_to_sync = 0;
|
||||
static size_t tx_bitpos = 0;
|
||||
static size_t tx_sympos = 0;
|
||||
static int tx_last_bit = 0;
|
||||
|
|
@ -315,7 +314,6 @@ size_t cnd_pos = 0;
|
|||
void DMA1_Channel1_IRQHandler() {
|
||||
static int transfer_errors = 0;
|
||||
static int current_symbol = 0;
|
||||
static int idle_symbol = 0;
|
||||
|
||||
if (DMA1->ISR & DMA_ISR_TEIF1) {
|
||||
transfer_errors ++;
|
||||
|
|
@ -344,32 +342,23 @@ void DMA1_Channel1_IRQHandler() {
|
|||
|
||||
sym_arr[sym_pos] = -255;
|
||||
|
||||
idle_symbol++;
|
||||
if (idle_symbol == 3) {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K23_7);
|
||||
idle_symbol = 0;
|
||||
|
||||
} else if (tx_sympos == sizeof(struct data_packet)) {
|
||||
if (time_to_sync > 0) {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K27_7);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
time_to_sync--;
|
||||
|
||||
} else {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K28_1);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
packet_rng_state = xorshift32(1);
|
||||
time_to_sync = SYNC_INTERVAL;
|
||||
}
|
||||
|
||||
if (tx_sympos == sizeof(struct data_packet)) {
|
||||
if (idle_buf_ready) {
|
||||
union tx_buf_union *tmp = tx_buf_idle;
|
||||
tx_buf_idle = tx_buf_read;
|
||||
tx_buf_read = tmp;
|
||||
idle_buf_ready = false;
|
||||
}
|
||||
|
||||
tx_sympos = 0;
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K28_1);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
packet_rng_state = xorshift32(1);
|
||||
|
||||
tx_sympos = 0;
|
||||
|
||||
} else {
|
||||
current_symbol = xfr_8b10b_encode(&encoder_state_8b10b, -K23_7);
|
||||
sym_arr[sym_pos] = current_symbol;
|
||||
}
|
||||
|
||||
} else {
|
||||
uint8_t b = tx_buf_read->bytes[tx_sympos];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue