#if !(ARCH & ARCH_UNITTEST)
#warning TODO:This is an example implementation, you must implement it!
+ /**
+ * Initialize the specified channel of the ADC for AFSK needs.
+ * The adc should be configured to have a continuos stream of convertions.
+ * For every convertion there must be an ISR that read the sample
+ * and call afsk_adc_isr(), passing the context and the sample.
+ *
+ * \param ch channel to be used for AFSK demodulation.
+ * \param ctx AFSK context. This parameter must be saved and
+ * passed back to afsk_adc_isr() for every convertion.
+ */
#define AFSK_ADC_INIT(ch, ctx) do { (void)ch, (void)ctx; } while (0)
#define AFSK_STROBE_INIT() do { /* Implement me */ } while (0)
#define AFSK_STROBE_ON() do { /* Implement me */ } while (0)
#define AFSK_STROBE_OFF() do { /* Implement me */ } while (0)
+ /**
+ * Initialize the specified channel of the DAC for AFSK needs.
+ * The DAC have to be configured in order to call an ISR for every sample sent.
+ * The DAC doesn't have to start the IRQ immediatly but have to wait
+ * the AFSK driver to call AFSK_DAC_IRQ_START().
+ * The ISR must then call afsk_dac_isr() passing the AFSK context.
+ * \param ch DAC channel to be used for AFSK modulation.
+ * \param ctx AFSK context. This parameter must be saved and
+ * passed back to afsk_dac_isr() for every convertion.
+ */
#define AFSK_DAC_INIT(ch, ctx) do { (void)ch, (void)ctx; } while (0)
+
+ /**
+ * Start DAC convertions on channel \a ch.
+ * \param ch DAC channel.
+ */
#define AFSK_DAC_IRQ_START(ch) do { (void)ch; /* Implement me */ } while (0)
+
+ /**
+ * Stop DAC convertions on channel \a ch.
+ * \param ch DAC channel.
+ */
#define AFSK_DAC_IRQ_STOP(ch) do { (void)ch; /* Implement me */ } while (0)
+
+ /**
+ * Set the next DAC value for channel \a ch.
+ * This macro is called by afsk_dac_isr() to set the next DAC output value.
+ * \param ch DAC channel.
+ * \param val Next DAC output value for channel.
+ */
#define AFSK_DAC_SET(ch, val) do { (void)ch; (void)val; } while (0)
#else /* (ARCH & ARCH_UNITTEST) */