Hide some M0 EventDispatcher event masks.

This commit is contained in:
Jared Boone 2016-06-19 11:41:38 -07:00
parent dbc2a5c9ea
commit f731366248
3 changed files with 14 additions and 5 deletions

View File

@ -38,12 +38,9 @@
#include <cstdint>
constexpr auto EVT_MASK_RTC_TICK = EVENT_MASK(0);
constexpr auto EVT_MASK_LCD_FRAME_SYNC = EVENT_MASK(1);
constexpr auto EVT_MASK_SWITCHES = EVENT_MASK(3);
constexpr auto EVT_MASK_ENCODER = EVENT_MASK(4);
constexpr auto EVT_MASK_TOUCH = EVENT_MASK(5);
constexpr auto EVT_MASK_APPLICATION = EVENT_MASK(6);
class EventDispatcher {
public:
@ -63,6 +60,14 @@ public:
}
}
static inline void event_isr_rtc_tick() {
events_flag_isr(EVT_MASK_RTC_TICK);
}
static inline void event_isr_lcd_frame_sync() {
events_flag_isr(EVT_MASK_LCD_FRAME_SYNC);
}
static inline void events_flag(const eventmask_t events) {
if( thread_event_loop ) {
chEvtSignal(thread_event_loop, events);
@ -80,6 +85,10 @@ public:
}
private:
static constexpr auto EVT_MASK_RTC_TICK = EVENT_MASK(0);
static constexpr auto EVT_MASK_LCD_FRAME_SYNC = EVENT_MASK(1);
static constexpr auto EVT_MASK_APPLICATION = EVENT_MASK(6);
static MessageHandlerMap message_map_;
static Thread* thread_event_loop;

View File

@ -54,7 +54,7 @@ CH_IRQ_HANDLER(PIN_INT4_IRQHandler) {
CH_IRQ_PROLOGUE();
chSysLockFromIsr();
EventDispatcher::events_flag_isr(EVT_MASK_LCD_FRAME_SYNC);
EventDispatcher::event_isr_lcd_frame_sync();
chSysUnlockFromIsr();
LPC_GPIO_INT->IST = (1U << 4);

View File

@ -39,7 +39,7 @@ CH_IRQ_HANDLER(RTC_IRQHandler) {
CH_IRQ_PROLOGUE();
chSysLockFromIsr();
EventDispatcher::events_flag_isr(EVT_MASK_RTC_TICK);
EventDispatcher::event_isr_rtc_tick();
chSysUnlockFromIsr();
rtc::interrupt::clear_all();