From 42dcd121ccd3be4d4444e94e01f91528bda58930 Mon Sep 17 00:00:00 2001 From: Mark Qvist Date: Tue, 8 Jan 2019 13:19:58 +0100 Subject: [PATCH] Updated buffer lengths --- hardware/AFSK.h | 22 ++++++++++++---------- hardware/Serial.c | 3 +-- protocol/AX25.c | 3 --- protocol/KISS.c | 15 ++++++++------- 4 files changed, 21 insertions(+), 22 deletions(-) diff --git a/hardware/AFSK.h b/hardware/AFSK.h index 0f7e5d2..68bfb71 100755 --- a/hardware/AFSK.h +++ b/hardware/AFSK.h @@ -38,13 +38,6 @@ inline static uint8_t sinSample(uint16_t i) { #define CPU_FREQ F_CPU -#define CONFIG_AFSK_RX_BUFLEN CONFIG_ADC_SAMPLERATE/150 -#define CONFIG_AFSK_TX_BUFLEN CONFIG_ADC_SAMPLERATE/150 -#define CONFIG_AFSK_RXTIMEOUT 0 -#define CONFIG_AFSK_TXWAIT 0UL -#define CONFIG_AFSK_PREAMBLE_LEN 150UL -#define CONFIG_AFSK_TRAILER_LEN 25UL -#define BIT_STUFF_LEN 5 #define BITRATE 1200 @@ -59,6 +52,15 @@ inline static uint8_t sinSample(uint16_t i) { #define CONFIG_DAC_SAMPLERATE 38400UL #endif + +#define CONFIG_AFSK_RX_BUFLEN CONFIG_ADC_SAMPLERATE/75 +#define CONFIG_AFSK_TX_BUFLEN CONFIG_ADC_SAMPLERATE/75 +#define CONFIG_AFSK_RXTIMEOUT 0 + +#define CONFIG_AFSK_PREAMBLE_LEN 150UL +#define CONFIG_AFSK_TRAILER_LEN 25UL +#define BIT_STUFF_LEN 5 + #define ADC_SAMPLESPERBIT (CONFIG_ADC_SAMPLERATE / BITRATE) #define ADC_TICKS_BETWEEN_SAMPLES ((((CPU_FREQ+FREQUENCY_CORRECTION)) / CONFIG_ADC_SAMPLERATE) - 1) @@ -169,9 +171,6 @@ typedef struct Afsk uint16_t silentSamples; // How many samples were completely silent - FIFOBuffer txFifo; // FIFO for transmit data - uint8_t txBuf[CONFIG_AFSK_TX_BUFLEN]; // Actual data storage for said FIFO - volatile bool sending; // Set when modem is sending volatile bool sending_data; // Set when modem is sending data @@ -188,6 +187,9 @@ typedef struct Afsk FIFOBuffer rxFifo; // FIFO for received data uint8_t rxBuf[CONFIG_AFSK_RX_BUFLEN]; // Actual data storage for said FIFO + FIFOBuffer txFifo; // FIFO for transmit data + uint8_t txBuf[CONFIG_AFSK_TX_BUFLEN]; // Actual data storage for said FIFO + int16_t iirX[2]; // IIR Filter X cells int16_t iirY[2]; // IIR Filter Y cells diff --git a/hardware/Serial.c b/hardware/Serial.c index 9c035aa..769d8f1 100755 --- a/hardware/Serial.c +++ b/hardware/Serial.c @@ -19,8 +19,7 @@ void serial_init(Serial *serial) { UCSR0B = _BV(RXEN0) | _BV(TXEN0); FILE uart0_fd = FDEV_SETUP_STREAM(uart0_putchar, uart0_getchar, _FDEV_SETUP_RW); - //FILE uart0_fd = FDEV_SETUP_STREAM(uart0_putchar, NULL, _FDEV_SETUP_WRITE); - + serial->uart0 = uart0_fd; } diff --git a/protocol/AX25.c b/protocol/AX25.c index 001b418..9fd25ac 100755 --- a/protocol/AX25.c +++ b/protocol/AX25.c @@ -32,9 +32,6 @@ void ax25_poll(AX25Ctx *ctx) { if (!ctx->escape && c == HDLC_FLAG) { if (ctx->frame_len >= AX25_MIN_FRAME_LEN) { if (ctx->crc_in == AX25_CRC_CORRECT || CONFIG_PASSALL) { - #if OPEN_SQUELCH == true - LED_RX_ON(); - #endif ax25_decode(ctx); } } diff --git a/protocol/KISS.c b/protocol/KISS.c index af9cff8..3e770ce 100755 --- a/protocol/KISS.c +++ b/protocol/KISS.c @@ -53,13 +53,14 @@ void kiss_messageCallback(AX25Ctx *ctx) { void kiss_csma(AX25Ctx *ctx, uint8_t *buf, size_t len) { bool sent = false; - if (CONFIG_AFSK_TXWAIT > 0) { - ticks_t wait_start = timer_clock(); - long wait_ticks = ms_to_ticks(CONFIG_AFSK_TXWAIT); - while (timer_clock() - wait_start < wait_ticks) { - cpu_relax(); - } - } + // TODO: Determine if this is to be removed + // if (CONFIG_AFSK_TXWAIT > 0) { + // ticks_t wait_start = timer_clock(); + // long wait_ticks = ms_to_ticks(CONFIG_AFSK_TXWAIT); + // while (timer_clock() - wait_start < wait_ticks) { + // cpu_relax(); + // } + // } while (!sent) { if(CONFIG_FULL_DUPLEX || !channel->hdlc.dcd) { uint8_t tp = rand() & 0xFF;