va7ta updates

pull/10/head
Tom VA7TA 2018-02-06 12:03:21 -08:00
parent 541f3718a1
commit e0335475b3
5 changed files with 47 additions and 28 deletions

View File

@ -9,6 +9,7 @@ extern bool LibAPRS_open_squelch;
bool hw_afsk_dac_isr = false;
bool hw_5v_ref = false;
bool fullBfrErr=false;//va7ta update
Afsk *AFSK_modem;
@ -25,36 +26,39 @@ void AFSK_hw_refDetect(void) {
}
}
void AFSK_hw_init(void) {
// Set up ADC
namespace AFSKADCINIT{//va7ta update
AFSK_hw_refDetect();
void AFSK_hw_init(void) {
// Set up ADC
TCCR1A = 0;
TCCR1B = _BV(CS10) | _BV(WGM13) | _BV(WGM12);
ICR1 = (((CPU_FREQ+FREQUENCY_CORRECTION)) / 9600) - 1;
AFSK_hw_refDetect();
if (hw_5v_ref) {
ADMUX = _BV(REFS0) | 0;
} else {
ADMUX = 0;
}
TCCR1A = 0;
TCCR1B = _BV(CS10) | _BV(WGM13) | _BV(WGM12);
ICR1 = (((CPU_FREQ+FREQUENCY_CORRECTION)) / 9600) - 1;
ADC_DDR &= ~_BV(0);
ADC_PORT &= ~_BV(0);
DIDR0 |= _BV(0);
ADCSRB = _BV(ADTS2) |
_BV(ADTS1) |
_BV(ADTS0);
ADCSRA = _BV(ADEN) |
_BV(ADSC) |
_BV(ADATE)|
_BV(ADIE) |
_BV(ADPS2);
if (hw_5v_ref) {
ADMUX = _BV(REFS0) | 0;
} else {
ADMUX = 0;
}
AFSK_DAC_INIT();
LED_TX_INIT();
LED_RX_INIT();
ADC_DDR &= ~_BV(0);
ADC_PORT &= ~_BV(0);
DIDR0 |= _BV(0);
ADCSRB = _BV(ADTS2) |
_BV(ADTS1) |
_BV(ADTS0);
ADCSRA = _BV(ADEN) |
_BV(ADSC) |
_BV(ADATE)|
_BV(ADIE) |
_BV(ADPS2);
AFSK_DAC_INIT();
LED_TX_INIT();
LED_RX_INIT();
}
}
void AFSK_init(Afsk *afsk) {
@ -73,7 +77,7 @@ void AFSK_init(Afsk *afsk) {
fifo_push(&afsk->delayFifo, 0);
}
AFSK_hw_init();
AFSKADCINIT::AFSK_hw_init();//va7ta update
}
@ -211,6 +215,8 @@ static bool hdlcParse(Hdlc *hdlc, bool bit, FIFOBuffer *fifo) {
ret = false;
hdlc->receiving = false;
LED_RX_OFF();
fullBfrErr=true;//va7ta update
}
// Everytime we receive a HDLC_FLAG, we reset the

View File

@ -10,6 +10,9 @@
#include "HDLC.h"
#define SIN_LEN 512
namespace AFSKADCINIT {//va7ta update
void AFSK_hw_init(void);//va7ta update
};//va7ta update
static const uint8_t sin_table[] PROGMEM =
{
128, 129, 131, 132, 134, 135, 137, 138, 140, 142, 143, 145, 146, 148, 149, 151,

View File

@ -15,6 +15,7 @@
extern int LibAPRS_vref;
extern bool LibAPRS_open_squelch;
bool CRC_Err=false; // CRC error flag - va7ta update
void ax25_init(AX25Ctx *ctx, ax25_callback_t hook) {
memset(ctx, 0, sizeof(*ctx));
@ -70,7 +71,9 @@ void ax25_poll(AX25Ctx *ctx) {
LED_RX_ON();
}
ax25_decode(ctx);
}
}else{//va7ta update
CRC_Err=true;//va7ta update
}//va7ta update
}
ctx->sync = true;
ctx->crc_in = CRC_CCIT_INIT_VAL;

View File

@ -12,6 +12,7 @@ bool LibAPRS_open_squelch = false;
unsigned long custom_preamble = 350UL;
unsigned long custom_tail = 50UL;
char dataID_Flag; // '!' no messaging; '=' messaging va7ta update
AX25Call src;
AX25Call dst;
@ -121,6 +122,10 @@ void APRS_setTail(unsigned long tail) {
custom_tail = tail;
}
void APRS_setDataTypeID(uint8_t flag) {//va7ta update
dataID_Flag = flag;//va7ta update
}//va7ta update
void APRS_useAlternateSymbolTable(bool use) {
if (use) {
symbolTable = '\\';
@ -228,7 +233,7 @@ void APRS_sendLoc(void *_buffer, size_t length) {
}
uint8_t *packet = (uint8_t*)malloc(payloadLength);
uint8_t *ptr = packet;
packet[0] = '=';
packet[0] = dataID_Flag; //'!'or'='//va7ta update
packet[9] = symbolTable;
packet[19] = symbol;
ptr++;

View File

@ -20,6 +20,8 @@ void APRS_setPath2(char *call, int ssid);
void APRS_setPreamble(unsigned long pre);
void APRS_setTail(unsigned long tail);
void APRS_useAlternateSymbolTable(bool use);
void APRS_setDataTypeID(char flag);//va7ta update
void APRS_setSymbol(char sym);
void APRS_setLat(char *lat);