diff options
author | Albert Kharisov <ah@bright-box.com> | 2021-09-10 00:37:32 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-10 00:37:32 +0300 |
commit | fbccb9fbafd543c2f7683be6de8ac9393250e9cd (patch) | |
tree | 6f1686eb8446939839679c214b608827d361ea4e /firmware | |
parent | 9bce160ca6aff2b139cd230aad2709e192be8117 (diff) |
[FL-1684] IRDA Add SIRC protocol (#693)
* IRDA HAL: Fill buffer refactoring
* IRDA: Add SIRC protocol
* IRDA: correct adr/cmd bit length
* Disable Unit tests
Co-authored-by: あく <alleteam@gmail.com>
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/targets/f6/furi-hal/furi-hal-irda.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/firmware/targets/f6/furi-hal/furi-hal-irda.c b/firmware/targets/f6/furi-hal/furi-hal-irda.c index 7c5d832b..a148b44a 100644 --- a/firmware/targets/f6/furi-hal/furi-hal-irda.c +++ b/firmware/targets/f6/furi-hal/furi-hal-irda.c @@ -442,7 +442,7 @@ static void furi_hal_irda_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_shift buffer->polarity[polarity_counter++] = IRDA_TX_CCMR_LOW; } - for (*size = 0; (*size < IRDA_TIM_TX_DMA_BUFFER_SIZE) && (status == FuriHalIrdaTxGetDataStateOk); ++(*size), ++polarity_counter) { + for (*size = 0; (*size < IRDA_TIM_TX_DMA_BUFFER_SIZE) && (status == FuriHalIrdaTxGetDataStateOk);) { if (irda_tim_tx.tx_timing_rest_duration > 0) { if (irda_tim_tx.tx_timing_rest_duration > 0xFFFF) { buffer->data[*size] = 0xFFFF; @@ -453,6 +453,8 @@ static void furi_hal_irda_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_shift } irda_tim_tx.tx_timing_rest_duration -= buffer->data[*size]; buffer->polarity[polarity_counter] = irda_tim_tx.tx_timing_rest_level ? IRDA_TX_CCMR_HIGH : IRDA_TX_CCMR_LOW; + ++(*size); + ++polarity_counter; continue; } @@ -467,18 +469,16 @@ static void furi_hal_irda_tx_fill_buffer(uint8_t buf_num, uint8_t polarity_shift */ status = FuriHalIrdaTxGetDataStateOk; } - --(*size); - --polarity_counter; } else if ((num_of_impulses - 1) > 0xFFFF) { irda_tim_tx.tx_timing_rest_duration = num_of_impulses - 1; irda_tim_tx.tx_timing_rest_status = status; irda_tim_tx.tx_timing_rest_level = level; - --(*size); - --polarity_counter; status = FuriHalIrdaTxGetDataStateOk; } else { buffer->polarity[polarity_counter] = level ? IRDA_TX_CCMR_HIGH : IRDA_TX_CCMR_LOW; buffer->data[*size] = num_of_impulses - 1; + ++(*size); + ++polarity_counter; } } |