projects
/
bertos.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
doc: Add menu, gfx and text documentation into global index.
[bertos.git]
/
bertos
/
net
/
afsk.c
diff --git
a/bertos/net/afsk.c
b/bertos/net/afsk.c
index 5efce302ab08a7be4677a8331c79e25da4eebbc5..d58758cd8397031613a1e8b9395f7421b5edc241 100644
(file)
--- a/
bertos/net/afsk.c
+++ b/
bertos/net/afsk.c
@@
-32,8
+32,7
@@
*
* \brief AFSK1200 modem.
*
*
* \brief AFSK1200 modem.
*
- * \version $Id$
- * \author Francesco Sacchi <asterix@develer.com>
+ * \author Francesco Sacchi <batt@develer.com>
*/
#include "afsk.h"
*/
#include "afsk.h"
@@
-106,11
+105,7
@@
INLINE uint8_t sin_sample(uint16_t idx)
uint16_t new_idx = idx % (SIN_LEN / 2);
new_idx = (new_idx >= (SIN_LEN / 4)) ? (SIN_LEN / 2 - new_idx - 1) : new_idx;
uint16_t new_idx = idx % (SIN_LEN / 2);
new_idx = (new_idx >= (SIN_LEN / 4)) ? (SIN_LEN / 2 - new_idx - 1) : new_idx;
- #if CPU_HARVARD
- uint8_t data = pgm_read_char(&sin_table[new_idx]);
- #else
- uint8_t data = sin_table[new_idx];
- #endif
+ uint8_t data = pgm_read8(&sin_table[new_idx]);
return (idx >= (SIN_LEN / 2)) ? (255 - data) : data;
}
return (idx >= (SIN_LEN / 2)) ? (255 - data) : data;
}
@@
-127,7
+122,7
@@
INLINE uint8_t sin_sample(uint16_t idx)
* \param bit current bit to be parsed.
* \param fifo FIFO buffer used to push characters.
*
* \param bit current bit to be parsed.
* \param fifo FIFO buffer used to push characters.
*
- * \return
True if all is ok, F
alse if the fifo is full.
+ * \return
true if all is ok, f
alse if the fifo is full.
*/
static bool hdlc_parse(Hdlc *hdlc, bool bit, FIFOBuffer *fifo)
{
*/
static bool hdlc_parse(Hdlc *hdlc, bool bit, FIFOBuffer *fifo)
{
@@
-209,7
+204,7
@@
static bool hdlc_parse(Hdlc *hdlc, bool bit, FIFOBuffer *fifo)
* ADC ISR callback.
* This function has to be called by the ADC ISR when a sample of the configured
* channel is available.
* ADC ISR callback.
* This function has to be called by the ADC ISR when a sample of the configured
* channel is available.
- * \param af Afsk context to operate on
e (\see Afsk)
.
+ * \param af Afsk context to operate on.
* \param curr_sample current sample from the ADC.
*/
void afsk_adc_isr(Afsk *af, int8_t curr_sample)
* \param curr_sample current sample from the ADC.
*/
void afsk_adc_isr(Afsk *af, int8_t curr_sample)
@@
-340,12
+335,14
@@
static void afsk_txStart(Afsk *af)
* This function has to be called by the DAC ISR when a sample of the configured
* channel has been converted out.
*
* This function has to be called by the DAC ISR when a sample of the configured
* channel has been converted out.
*
- * \param af Afsk context to operate on
e (\see Afsk)
.
+ * \param af Afsk context to operate on.
*
* \return The next DAC output sample.
*/
uint8_t afsk_dac_isr(Afsk *af)
{
*
* \return The next DAC output sample.
*/
uint8_t afsk_dac_isr(Afsk *af)
{
+ AFSK_STROBE_ON();
+
/* Check if we are at a start of a sample cycle */
if (af->sample_count == 0)
{
/* Check if we are at a start of a sample cycle */
if (af->sample_count == 0)
{
@@
-356,6
+353,7
@@
uint8_t afsk_dac_isr(Afsk *af)
{
AFSK_DAC_IRQ_STOP(af->dac_ch);
af->sending = false;
{
AFSK_DAC_IRQ_STOP(af->dac_ch);
af->sending = false;
+ AFSK_STROBE_OFF();
return 0;
}
else
return 0;
}
else
@@
-395,6
+393,7
@@
uint8_t afsk_dac_isr(Afsk *af)
{
AFSK_DAC_IRQ_STOP(af->dac_ch);
af->sending = false;
{
AFSK_DAC_IRQ_STOP(af->dac_ch);
af->sending = false;
+ AFSK_STROBE_OFF();
return 0;
}
else
return 0;
}
else
@@
-453,6
+452,7
@@
uint8_t afsk_dac_isr(Afsk *af)
af->phase_acc %= SIN_LEN;
af->sample_count--;
af->phase_acc %= SIN_LEN;
af->sample_count--;
+ AFSK_STROBE_OFF();
return sin_sample(af->phase_acc);
}
return sin_sample(af->phase_acc);
}
@@
-472,7
+472,7
@@
static size_t afsk_read(KFile *fd, void *_buf, size_t size)
ticks_t start = timer_clock();
#endif
ticks_t start = timer_clock();
#endif
- while (fifo_isempty_locked(&af->rx_fifo))
;
+ while (fifo_isempty_locked(&af->rx_fifo))
{
cpu_relax();
#if CONFIG_AFSK_RXTIMEOUT != -1
{
cpu_relax();
#if CONFIG_AFSK_RXTIMEOUT != -1
@@
-530,7
+530,7
@@
static void afsk_clearerr(KFile *fd)
/**
* Initialize an AFSK1200 modem.
/**
* Initialize an AFSK1200 modem.
- * \param af Afsk context to operate on
e (\see Afsk)
.
+ * \param af Afsk context to operate on.
* \param adc_ch ADC channel used by the demodulator.
* \param dac_ch DAC channel used by the modulator.
*/
* \param adc_ch ADC channel used by the demodulator.
* \param dac_ch DAC channel used by the modulator.
*/