#ifndef _GCCFWTEST_LCD_H
#define _GCCFWTEST_LCD_H

#define MW_MAIN_VERSION "MW v0.4"

#if defined MW_DEVBOARD_V2
#include "hal_devboard_v2_defs.h"
#elif defined MW_DIGITAL_V2
#include "hal_digital_v2_defs.h"
#else
#error "Define a watch type!"
#endif
#include "hal_io_macros.h"

#define LPM3_EXIT_ISR() { _BIC_SR_IRQ(SCG1+OSCOFF+CPUOFF); nop(); }

#define WATCHDOG_EVENT		1 << 0
#define RTC_1HZ_EVENT		1 << 1
#define DBG_UART_RCV_EVENT	1 << 2
#define BUTTON_EVENT		1 << 3
#define TIMER_500MS_EVENT	1 << 4
#define TIMER_100MS_EVENT	1 << 5
#define POWER_SRC_EVENT		1 << 6
#define BT_UART_RCV_EVENT	1 << 7
#define BT_UART_WAKEUP_EVENT	1 << 8
#define ACCEL_EVENT		1 << 9

extern unsigned int _event_src;

//#define TIMER_500MS_CYCLES		32768

#define TIMER_500MS_CYCLES		16384
#define TIMER_100MS_CYCLES		327

void start_timer(int cycles);
void stop_timer(void);

uint8_t handle_event(void);

#endif