X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fnet%2Fafsk.h;h=d9ce6ff0ca0d59c225a899d0ce31a2d2e9f33383;hb=74c7bb68260444eee2831f758b1a9296d6d4ac4e;hp=902c5b9470944a6fbd136ab248ba7acfc7e608e9;hpb=e00ec3c717447fcfedf6fa23c8feaf01b1b654e8;p=bertos.git diff --git a/bertos/net/afsk.h b/bertos/net/afsk.h index 902c5b94..d9ce6ff0 100644 --- a/bertos/net/afsk.h +++ b/bertos/net/afsk.h @@ -52,8 +52,19 @@ #include -// Demodulator constants + +/** + * ADC sample rate. + * The demodulator filters are designed to work at this frequency. + * If you need to change this remember to update afsk_adc_isr(). + */ #define SAMPLERATE 9600 + +/** + * Bitrate of the received/transmitted data. + * The demodulator filters and decoderes are designed to work at this frequency. + * If you need to change this remember to update afsk_adc_isr(). + */ #define BITRATE 1200 #define SAMPLEPERBIT (SAMPLERATE / BITRATE) @@ -70,6 +81,10 @@ typedef struct Hdlc bool rxstart; ///< True if an HDLC_FLAG char has been found in the bitstream. } Hdlc; +/** + * RX FIFO buffer full error. + */ +#define AFSK_RXFIFO_OVERRUN BV(0) /** * AFSK1200 modem context. @@ -154,6 +169,12 @@ typedef struct Afsk /** True while modem sends data */ volatile bool sending; + /** + * AFSK modem status. + * If 0 all is ok, otherwise errors are present. + */ + volatile int status; + /** Hdlc context */ Hdlc hdlc; @@ -166,7 +187,7 @@ typedef struct Afsk uint16_t preamble_len; /** - * Preamble length. + * Trailer length. * After sending the actual data, the AFSK shifts out * trailer_len HDLC_FLAG characters. * This helps to synchronize the demodulator filters on the receiver side. @@ -182,13 +203,14 @@ INLINE Afsk *AFSK_CAST(KFile *fd) return (Afsk *)fd; } -void afsk_adc_isr(Afsk *af, int8_t curr_sample); -void afsk_dac_isr(Afsk *af); + +void afsk_adc_isr(Afsk *af, int8_t sample); +uint8_t afsk_dac_isr(Afsk *af); void afsk_init(Afsk *af, int adc_ch, int dac_ch); /** - * \name afsk filter type + * \name Afsk filter types. * $WIZ$ afsk_filter_list = "AFSK_BUTTERWORTH", "AFSK_CHEBYSHEV" * \{ */