properly initialize DigitalSequence for NfcA

This commit is contained in:
g3gg0
2022-11-21 18:40:54 +01:00
parent 3165daf5a6
commit ae80d06e93
2 changed files with 7 additions and 4 deletions

View File

@@ -5,7 +5,7 @@
#include <stm32wbxx_ll_tim.h> #include <stm32wbxx_ll_tim.h>
#include <math.h> #include <math.h>
#define TAG "[DigitalSignal]" #define TAG "DigitalSignal"
#pragma GCC optimize("O3,unroll-loops,Ofast") #pragma GCC optimize("O3,unroll-loops,Ofast")
@@ -299,7 +299,7 @@ bool digital_sequence_send_signal(DigitalSignal* signal) {
furi_hal_gpio_init(signal->gpio, GpioModeOutputPushPull, GpioPullNo, GpioSpeedVeryHigh); furi_hal_gpio_init(signal->gpio, GpioModeOutputPushPull, GpioPullNo, GpioSpeedVeryHigh);
if(!digital_signal_setup_dma(signal)) { if(!digital_signal_setup_dma(signal)) {
FURI_LOG_D(TAG, "Signal has no entries, aborting"); FURI_LOG_D(TAG, "digital_sequence_send_signal: Signal has no entries, aborting");
return false; return false;
} }
digital_signal_setup_timer(); digital_signal_setup_timer();
@@ -311,7 +311,7 @@ bool digital_sequence_send_signal(DigitalSignal* signal) {
/* configure next polarities and timings */ /* configure next polarities and timings */
if(!digital_signal_update_dma(signal)) { if(!digital_signal_update_dma(signal)) {
FURI_LOG_D(TAG, "Signal has no entries, aborting"); FURI_LOG_D(TAG, "digital_sequence_send_signal: Signal has no entries, aborting");
return false; return false;
} }
} }
@@ -329,7 +329,7 @@ bool digital_sequence_send(DigitalSequence* sequence, const GpioPin* gpio) {
DigitalSignal *sig = sequence->signals[signal_index]; DigitalSignal *sig = sequence->signals[signal_index];
if(!sig) { if(!sig) {
FURI_LOG_D(TAG, "Signal at index %u, used at pos %lu is NULL, aborting", signal_index, pos); FURI_LOG_D(TAG, "digital_sequence_send: Signal at index %u, used at pos %lu is NULL, aborting", signal_index, pos);
digital_signal_stop_timer(); digital_signal_stop_timer();
digital_signal_stop_dma(); digital_signal_stop_dma();
return false; return false;

View File

@@ -103,6 +103,9 @@ NfcaSignal* nfca_signal_alloc() {
nfca_add_bit(nfca_signal->zero, false); nfca_add_bit(nfca_signal->zero, false);
nfca_signal->tx_signal = digital_sequence_alloc(NFCA_SIGNAL_MAX_EDGES); nfca_signal->tx_signal = digital_sequence_alloc(NFCA_SIGNAL_MAX_EDGES);
digital_sequence_set_signal(nfca_signal->tx_signal, 0, nfca_signal->zero);
digital_sequence_set_signal(nfca_signal->tx_signal, 1, nfca_signal->one);
return nfca_signal; return nfca_signal;
} }