From ae80d06e9346f2113953cb5a35972d52af18220c Mon Sep 17 00:00:00 2001 From: g3gg0 Date: Mon, 21 Nov 2022 18:40:54 +0100 Subject: [PATCH] properly initialize DigitalSequence for NfcA --- lib/digital_signal/digital_signal.c | 8 ++++---- lib/nfc/protocols/nfca.c | 3 +++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/digital_signal/digital_signal.c b/lib/digital_signal/digital_signal.c index d05594c18..7aed70a6e 100644 --- a/lib/digital_signal/digital_signal.c +++ b/lib/digital_signal/digital_signal.c @@ -5,7 +5,7 @@ #include #include -#define TAG "[DigitalSignal]" +#define TAG "DigitalSignal" #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); 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; } digital_signal_setup_timer(); @@ -311,7 +311,7 @@ bool digital_sequence_send_signal(DigitalSignal* signal) { /* configure next polarities and timings */ 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; } } @@ -329,7 +329,7 @@ bool digital_sequence_send(DigitalSequence* sequence, const GpioPin* gpio) { DigitalSignal *sig = sequence->signals[signal_index]; 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_dma(); return false; diff --git a/lib/nfc/protocols/nfca.c b/lib/nfc/protocols/nfca.c index 01a0ea740..833022b92 100644 --- a/lib/nfc/protocols/nfca.c +++ b/lib/nfc/protocols/nfca.c @@ -103,6 +103,9 @@ NfcaSignal* nfca_signal_alloc() { nfca_add_bit(nfca_signal->zero, false); 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; }