X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;ds=sidebyside;f=drv%2Fbuzzerled.c;fp=drv%2Fbuzzerled.c;h=0000000000000000000000000000000000000000;hb=791e167e053bdd9250d34a9a5ccae6ccde4d6679;hp=7ce6f53c416d6cf5146b29ce4df3f66460deabf6;hpb=faf2f6bfd5933ff75e6cc01e3d48f9277f731d8f;p=bertos.git diff --git a/drv/buzzerled.c b/drv/buzzerled.c deleted file mode 100644 index 7ce6f53c..00000000 --- a/drv/buzzerled.c +++ /dev/null @@ -1,123 +0,0 @@ -/** - * \file - * - * - * \brief Generic library to handle buzzers and leds - * - * This library is divided into three different layers: - * - * - The topmost portable layer is buzzerled.[ch] which exposes a common API - * enable/disable the devices. Basically, it handles the asynchronism to - * implement bld_beep and bld_repeat. - * - The middle layer is CPU-specific and exposes a single main function which - * turns on/off each device. - * - The lower layer is board-specific and communicates with the middle layer - * with any required API. The idea is that devices can be tied to the CPU in - * many different ways (many different pins), so this part should describe - * which devices are present, and how they are connected. - * - * \version $Id$ - * - * \author Giovanni Bajo - */ - -/*#* - *#* $Log$ - *#* Revision 1.7 2006/07/19 12:56:25 bernie - *#* Convert to new Doxygen style. - *#* - *#* Revision 1.6 2005/11/04 16:20:02 bernie - *#* Fix reference to README.devlib in header. - *#* - *#* Revision 1.5 2004/12/08 09:43:41 bernie - *#* Add a todo item. - *#* - *#* Revision 1.4 2004/08/25 14:12:08 rasky - *#* Aggiornato il comment block dei log RCS - *#* - *#* Revision 1.3 2004/07/14 14:04:29 rasky - *#* Merge da SC: spostata bld_set inline perché si ottimizza parecchio tramite propagazione di costanti - *#* - *#* Revision 1.2 2004/06/03 11:27:09 bernie - *#* Add dual-license information. - *#* - *#* Revision 1.1 2004/05/23 18:36:05 bernie - *#* Import buzzerled driver. - *#* - *#*/ - -#include "buzzerled.h" -#include "timer.h" - -static struct Timer timers[NUM_BLDS]; -static bool timer_go[NUM_BLDS]; - -INLINE enum BLD_DEVICE hook_parm_to_device(void* parm) -{ - struct Timer* t = (struct Timer*)parm; - int num_bld = t - &timers[0]; - - ASSERT(num_bld >= 0); - ASSERT(num_bld < NUM_BLDS); - - return (enum BLD_DEVICE)num_bld; -} - -static void hook_turn_off(void* parm) -{ - enum BLD_DEVICE num_bld = hook_parm_to_device(parm); - bld_set(num_bld, false); -} - -void bld_init(void) -{ - bld_hw_init(); -} - -void bld_beep(enum BLD_DEVICE device, uint16_t duration) -{ - // \todo This is not reentrant for the same device. FIXME! - struct Timer *t = &timers[device]; - timer_set_delay(t, duration); - timer_set_event_softint(t, hook_turn_off, t); - timer_add(t); - - bld_set(device, true); -} - -void bld_beep_and_wait(enum BLD_DEVICE device, uint16_t duration) -{ - bld_set(device, true); - timer_delay(duration); - bld_set(device, false); -} -