#include int ticks_for_clock, count_seconds_for_clock, count_minutes_for_clock, count_hours_for_clock, current_time; void update_time_in_the_screen_buffer(void); int main(void) { // Rec. 32768 crystal for WDT clock source WDTCTL = WDT_ADLY_1_9; // Set WDT as interrupt source 512tpsec. (32768/64) IE1 |= WDTIE; // Enable WDT interrupt __bis_SR_register(LPM0_bits + GIE); // Enter LPM0 w/ interrupt } #pragma vector=WDT_VECTOR // Next, executed every time when WDT interrupt occurred, 512 tps. __interrupt void watchdog_timer_512_times_per_second(void) { //update current time ticks_for_clock++; current_time = count_hours_for_clock + count_minutes_for_clock; if(ticks_for_clock == 512) {count_seconds_for_clock++; ticks_for_clock = 0; //} if(count_seconds_for_clock == 60) {count_minutes_for_clock++; count_seconds_for_clock = 0; //} if(count_minutes_for_clock == 60) {count_minutes_for_clock=0; count_hours_for_clock++; //} if(count_hours_for_clock == 24) count_hours_for_clock=0; //} }}} if (current_time != (count_hours_for_clock + count_minutes_for_clock)) update_time_in_the_screen_buffer(); } void update_time_in_the_screen_buffer(void) { }