/** * \file * * * \brief AFSK modem hardware-specific definitions. * * \author Francesco Sacchi */ #ifndef HW_AFSK_H #define HW_AFSK_H #include "cfg/cfg_arch.h" #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 (\see Afsk). 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 has 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 (\see Afsk). 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) #endif /* HW_AFSK_H */