*/
#include "afsk.h"
+#include <net/ax25.h>
+
#include "cfg/cfg_afsk.h"
#include "hw/hw_afsk.h"
/* HDLC Flag */
if (demod_bits == HDLC_FLAG)
{
- if (!fifo_isfull_locked(&rx_fifo))
+ if (!fifo_isfull(&rx_fifo))
{
fifo_push(&rx_fifo, HDLC_FLAG);
hdlc_rxstart = true;
}
else
hdlc_rxstart = false;
+
hdlc_currchar = 0;
hdlc_bit_idx = 0;
return;
{
if ((hdlc_currchar == HDLC_FLAG
|| hdlc_currchar == HDLC_RESET
- || hdlc_currchar == AFSK_ESC)
- && !fifo_isfull_locked(&rx_fifo))
- fifo_push(&rx_fifo, AFSK_ESC);
+ || hdlc_currchar == AX25_ESC)
+ && !fifo_isfull(&rx_fifo))
+ fifo_push(&rx_fifo, AX25_ESC);
else
hdlc_rxstart = false;
- if (!fifo_isfull_locked(&rx_fifo))
+ if (!fifo_isfull(&rx_fifo))
fifo_push(&rx_fifo, hdlc_currchar);
else
hdlc_rxstart = false;
hdlc_parse(!EDGE_FOUND(found_bits));
}
+
AFSK_STROBE_OFF();
+ AFSK_ADC_IRQ_END();
}
/* True while modem sends data */
{
AFSK_DAC_IRQ_STOP();
sending = false;
+ AFSK_DAC_IRQ_END();
return;
}
else
curr_out = fifo_pop(&tx_fifo);
/* Handle char escape */
- if (curr_out == AFSK_ESC)
+ if (curr_out == AX25_ESC)
{
if (fifo_isempty(&tx_fifo))
{
AFSK_DAC_IRQ_STOP();
sending = false;
+ AFSK_DAC_IRQ_END();
return;
}
else
AFSK_SET_DAC(sin_sample(phase_acc));
sample_count--;
+ AFSK_DAC_IRQ_END();
}
ticks_t start = timer_clock();
#endif
- do
+ while (fifo_isempty_locked(&rx_fifo));
{
cpu_relax();
#if CONFIG_AFSK_RXTIMEOUT != -1
return buf - (uint8_t *)_buf;
#endif
}
- while (fifo_isempty_locked(&rx_fifo));
*buf++ = fifo_pop_locked(&rx_fifo);
}
fifo_init(&tx_fifo, tx_buf, sizeof(tx_buf));
AFSK_ADC_INIT();
+ AFSK_STROBE_INIT();
kprintf("MARK_INC %d, SPACE_INC %d\n", MARK_INC, SPACE_INC);
memset(af, 0, sizeof(*af));