use sequences, but bake them before sending. required for shorter signal sequences, causing higher setup time

This commit is contained in:
g3gg0
2022-11-22 02:11:09 +01:00
parent 116528f871
commit 021695b2a3
3 changed files with 6 additions and 2 deletions
+4 -1
View File
@@ -91,7 +91,7 @@ static void nfca_add_modulation(DigitalSignal* signal, size_t phases) {
}
static void nfca_add_silence(DigitalSignal* signal, size_t phases) {
bool end_level = signal->start_level ^ (signal->edge_cnt % 2);
bool end_level = signal->start_level ^ ((signal->edge_cnt % 2) == 0);
if((signal->edge_cnt == 0) || end_level) {
signal->edge_timings[signal->edge_cnt++] = DIGITAL_SIGNAL_PS(phases * T_SUB_PHASE);
@@ -124,6 +124,9 @@ NfcaSignal* nfca_signal_alloc() {
nfca_signal->tx_signal = digital_sequence_alloc(NFCA_SIGNAL_MAX_EDGES);
/* we are dealing with shorter sequences, enable bake-before-sending */
nfca_signal->tx_signal->bake = true;
digital_sequence_set_signal(nfca_signal->tx_signal, SEQ_SOF, nfca_signal->seq_d);
digital_sequence_set_signal(nfca_signal->tx_signal, SEQ_BIT0, nfca_signal->seq_e);
digital_sequence_set_signal(nfca_signal->tx_signal, SEQ_BIT1, nfca_signal->seq_d);