mirror of
https://github.com/markqvist/OpenModem.git
synced 2024-12-24 23:19:36 -05:00
Transmit queue and buffers
This commit is contained in:
parent
8e836c629c
commit
532e440a3d
8
device.h
8
device.h
@ -10,7 +10,7 @@
|
||||
|
||||
// Voltage references
|
||||
// TODO: Determine best defaults
|
||||
#define CONFIG_ADC_REF 128
|
||||
#define CONFIG_ADC_REF 255
|
||||
#define CONFIG_DAC_REF 255
|
||||
|
||||
// TODO: Change this back to default
|
||||
@ -25,9 +25,9 @@
|
||||
// Serial settings
|
||||
#define SERIAL_DEBUG false
|
||||
#define TX_MAXWAIT 2UL
|
||||
#define CONFIG_QUEUE_SIZE 3000 // TODO: Optimise this by saving ram other places, add SD queue
|
||||
#define CONFIG_QUEUE_SIZE 6000 // TODO: Optimise this by saving ram other places, add SD queue
|
||||
#define CONFIG_QUEUE_MAX_LENGTH 15
|
||||
#define CONFIG_SERIAL_BUFFER_SIZE 1532 // TODO: Tune this, what is actually required?
|
||||
#define CONFIG_SERIAL_BUFFER_SIZE 1536 // TODO: Tune this, what is actually required?
|
||||
#define CONFIG_SERIAL_TIMEOUT_MS 10
|
||||
#define CONFIG_BENCHMARK_MODE false
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
#define CONFIG_CSMA_P 255
|
||||
|
||||
#define AX25_MIN_FRAME_LEN 1
|
||||
#define AX25_MAX_FRAME_LEN 1532
|
||||
#define AX25_MAX_FRAME_LEN 600
|
||||
|
||||
// Packet settings
|
||||
#define CONFIG_PASSALL false
|
||||
|
@ -40,7 +40,7 @@ inline static uint8_t sinSample(uint16_t i) {
|
||||
#define CPU_FREQ F_CPU
|
||||
|
||||
|
||||
#define BITRATE 1200
|
||||
#define BITRATE 2400
|
||||
|
||||
#if BITRATE == 300
|
||||
#define CONFIG_ADC_SAMPLERATE 9600UL
|
||||
|
@ -14,6 +14,4 @@ void bluetooth_init(void);
|
||||
bool bluetooth_enabled(void);
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
// CMD/DATA sequence: 0x2b2b2b0d
|
||||
#endif
|
@ -2,6 +2,8 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
extern volatile uint8_t queue_height;
|
||||
|
||||
void serial_init(Serial *serial) {
|
||||
memset(serial, 0, sizeof(*serial));
|
||||
memset(serialBuf, 0, sizeof(serialBuf));
|
||||
@ -47,8 +49,19 @@ char uart0_getchar_nowait(void) {
|
||||
ISR(USART0_RX_vect) {
|
||||
if (serial_available(0)) {
|
||||
LED_COM_ON();
|
||||
char c = uart0_getchar_nowait();
|
||||
fifo_push(&serialFIFO, c);
|
||||
if (!fifo_isfull(&serialFIFO)) {
|
||||
char c = uart0_getchar_nowait();
|
||||
fifo_push(&serialFIFO, c);
|
||||
} else {
|
||||
// TODO: Remove this
|
||||
printf("SERIAL FIFO OVERRUN\r\n");
|
||||
printf("QH: %d", queue_height);
|
||||
while(true) {
|
||||
LED_TX_ON();
|
||||
LED_RX_ON();
|
||||
LED_COM_ON();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -162,14 +162,6 @@ void kiss_flushQueue(void) {
|
||||
}
|
||||
}
|
||||
|
||||
uint8_t kiss_queuedPackets(void) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool kiss_queueIsFull(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void kiss_serialCallback(uint8_t sbyte) {
|
||||
if (IN_FRAME && sbyte == FEND && command == CMD_DATA) {
|
||||
IN_FRAME = false;
|
||||
@ -184,7 +176,7 @@ void kiss_serialCallback(uint8_t sbyte) {
|
||||
fifo16_push_locked(&packet_lengths, l);
|
||||
|
||||
current_packet_start = queue_cursor;
|
||||
//printf("Queue height %d\r\n", queue_height);
|
||||
printf("Queue height %d\r\n", queue_height);
|
||||
}
|
||||
|
||||
} else if (sbyte == FEND) {
|
||||
|
Loading…
Reference in New Issue
Block a user