/** * \file * * * \brief Generic library to handle buzzers and leds * * * \author Giovanni Bajo */ #ifndef DRV_BUZZERLED_H #define DRV_BUZZERLED_H #include #if 0 /** Include hw_buzzerled.h. We expect hw_buzzerled.h to define enum BLD_DEVICE, which must contain * an enumarator for each device, plus a special symbol NUM_BLDS containing the * number of devices. */ #include "hw/hw_buzzerled.h" /* Include hw-level implementation. This allows inlining of bld_set, which in turns * should allow fast constant propagation for the common case (where the parameter * device is a constant). */ #include CPU_HEADER(buzzerled) /** Initialize the buzzerled library. * * \note This function must be called before any other function in the library. */ void bld_init(void); /** Set or reset a device. * * \param device Device to be set * \param enable Enable/disable status */ #define bld_set(device, enable) bld_hw_set(device, enable) /** Enable a device for a certain interval of time * * \param device Device to be enabled * \param duration Number of milliseconds the device must be enabled * * \note This function is non-blocking, so it will return immediately. */ void bld_beep(enum BLD_DEVICE device, uint16_t duration); /** Enable a device for a certain interval of time and wait. * * \param device Device to be enabled * \param duration Number of milliseconds the device must be enabled * * \note This function is blocking, so it will return after the specified period of time. */ void bld_beep_and_wait(enum BLD_DEVICE device, uint16_t duration); #endif #endif /* DRV_BUZZERLED_H */