if (timer_running) { /* stop the timer and add to our accumulated seconds */ timer_running = 0; accumulated_seconds += (current_seconds - start_seconds); temp = accumulated_subseconds + ((current_subseconds - start_subseconds) & 0x0ff); if (temp > 255) { accumulated_seconds++; accumulated_subseconds = temp & 0x0ff; } else accumulated_subseconds = temp; start_seconds = 0; start_subseconds = 0; current_seconds = 0; current_subseconds = 0; } else { /* start the timer. Set the start time to current RTC */ timer_running = 1; start_seconds = RTSH; start_seconds = start_seconds << 16; start_seconds |= RTSL; start_subseconds = RTSS; }