X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=drv%2Fbuzzerled_dsp56k.h;h=3a7a2bf822852f615fc0c6b60e517468b03bf68a;hb=5f3952176a4e9a00ca8dd5ec4a6b994958f89e0a;hp=659542c7ac68e19534361b2f6fa2b3a249b821b6;hpb=a5fba8f9bf20dab160ac77bcdc8f34487fbc55db;p=bertos.git diff --git a/drv/buzzerled_dsp56k.h b/drv/buzzerled_dsp56k.h old mode 100755 new mode 100644 index 659542c7..3a7a2bf8 --- a/drv/buzzerled_dsp56k.h +++ b/drv/buzzerled_dsp56k.h @@ -1,9 +1,9 @@ -/*! +/** * \file * * * \brief Hardware support for buzzers and leds in DSP56K-based boards @@ -13,17 +13,92 @@ * \author Giovanni Bajo */ -/* - * $Log$ - * Revision 1.1 2004/05/23 18:36:05 bernie - * Import buzzerled driver. - * - */ +/*#* + *#* $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 2005/04/11 19:10:27 bernie + *#* Include top-level headers from cfg/ subdir. + *#* + *#* Revision 1.4 2004/11/16 21:54:43 bernie + *#* Changes for SC Monoboard support. + *#* + *#* Revision 1.3 2004/08/25 14:12:08 rasky + *#* Aggiornato il comment block dei log RCS + *#* + *#* 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 +#ifndef DRV_BUZZERLED_DSP56K_H +#define DRV_BUZZERLED_DSP56K_H + +#include #include #include "pwm.h" +#if ARCH & ARCH_HECO + +/** + * \name Connection of the leds to the DSP: + *
+ *   Led       Line    DSP Pin
+ *   ---------------------------
+ *   YELLOW    T2      HOME1/TB3
+ *   GREEN     T3      INDX1/TB2
+ *   RED       T4      PHB1/TB1
+ * 
+ */ + +INLINE bool bld_is_inverted_intensity(enum BLD_DEVICE device) +{ + return (device == BLD_GREEN_LED + || device == BLD_YELLOW_LED + || device == BLD_RED_LED); +} + +INLINE bool bld_is_pwm(enum BLD_DEVICE device) +{ + // Only the buzzer is connected to a PWM + return (device == BLD_BUZZER || device == BLD_READY_LED); +} + +INLINE bool bld_is_timer(enum BLD_DEVICE device) +{ + // LEDs are connected to timers + return (device == BLD_GREEN_LED || device == BLD_YELLOW_LED || device == BLD_RED_LED); +} + +INLINE uint16_t bld_get_pwm(enum BLD_DEVICE device) +{ + switch (device) + { + default: ASSERT(0); + case BLD_BUZZER: return 5; // PWMA5 + case BLD_READY_LED: return 9; // PWMB3 + } +} + + +INLINE struct REG_TIMER_STRUCT* bld_get_timer(enum BLD_DEVICE device) +{ + switch (device) + { + default: ASSERT(0); + case BLD_GREEN_LED: return ®_TIMER_B[2]; + case BLD_RED_LED: return ®_TIMER_B[1]; + case BLD_YELLOW_LED: return ®_TIMER_B[3]; + } +} + INLINE void bld_hw_init(void) { } @@ -67,3 +142,12 @@ INLINE void bld_hw_set(enum BLD_DEVICE device, bool enable) ASSERT(0); } +#elif ARCH & ARCH_SC + +// We do not need inline functions here, because constant propagation is not big deal here +void bld_hw_init(void); +void bld_hw_set(enum BLD_DEVICE device, bool enable); + +#endif + +#endif /* DRV_BUZZERLED_DSP56K_H */