diff options
Diffstat (limited to 'drivers/gaudio/gadc/gaudio_record_lld.c')
-rw-r--r-- | drivers/gaudio/gadc/gaudio_record_lld.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/drivers/gaudio/gadc/gaudio_record_lld.c b/drivers/gaudio/gadc/gaudio_record_lld.c new file mode 100644 index 00000000..ee994dc1 --- /dev/null +++ b/drivers/gaudio/gadc/gaudio_record_lld.c @@ -0,0 +1,62 @@ +/* + * This file is subject to the terms of the GFX License. If a copy of + * the license was not distributed with this file, you can obtain one at: + * + * http://ugfx.org/license.html + */ + +/** + * @file drivers/gaudio/gadc/gaudio_record_lld.c + * @brief GAUDIO - Record Driver file for using the cpu ADC (via GADC). + * + * @addtogroup GAUDIO + * + * @{ + */ + +/** + * We are now implementing the driver - pull in our channel table + * from the board definitions. + */ +#define GAUDIO_RECORD_IMPLEMENTATION + + +#include "gfx.h" + +#if GFX_USE_GAUDIO && GAUDIO_NEED_RECORD + +/* Double check the GADC system is turned on */ +#if !GFX_USE_GADC + #error "GAUDIO - The GADC driver for GAUDIO requires GFX_USE_GADC to be TRUE" +#endif + +/* Include the driver defines */ +#include "src/gaudio/driver_record.h" + +/*===========================================================================*/ +/* External declarations. */ +/*===========================================================================*/ + +void gaudin_lld_init(const gaudin_params *paud) { + /* Setup the high speed GADC */ + gadcHighSpeedInit(gaudin_lld_physdevs[paud->channel], paud->frequency, paud->buffer, paud->bufcount, paud->samplesPerEvent); + + /* Register ourselves for ISR callbacks */ + gadcHighSpeedSetISRCallback(GAUDIN_ISR_CompleteI); + + /** + * The gadc driver handles any errors for us by restarting the transaction so there is + * no need for us to setup anything for GAUDIN_ISR_ErrorI() + */ +} + +void gaudin_lld_start(void) { + gadcHighSpeedStart(); +} + +void gaudin_lld_stop(void) { + gadcHighSpeedStop(); +} + +#endif /* GFX_USE_GAUDIO && GAUDIO_NEED_RECORD */ +/** @} */ |