   power_timer1_disable();
   power_timer2_disable();
   power_timer3_disable();
+
+  now = 0;
+  checkpoint = millis();
+  currentScreen = SCREEN_WATCH;
 }
 
 void loop() {

uint8_t logbat = 0;
uint16_t eeaddr = 1;

void setup() {
  Xadow.init();
  //Xadow.greenLed(LEDON);



  // sleep for a bit to save power. This is OK b/c timer0 which provides
  // millis is not disabled
  Xadow.goToSleep(SLEEP_MODE_PWR_DOWN, 200);

  power_spi_enable();
  uint8_t changes = watch_tick(now);

  Screen nextscreen = currentScreen;

  if (digitalRead(10) == LOW) {
    nextscreen = SCREEN_STATUS;
  } else {
    nextscreen = SCREEN_WATCH;
  }

  if (nextscreen != currentScreen) {
    oled.fillScreen(COLOR_BLACK);
    currentScreen = nextscreen;
  }

  switch(nextscreen) {
    case SCREEN_STATUS:
      status_show();
      delay(1000);
      break;

    case SCREEN_WATCH:
      watch_show(changes);
      break; 
  }

  if (changes >= 2 && logbat) {
    if (eeaddr < 1024) {
      uint8_t batvol = Xadow.getBatVol()*10;
      EEPROM[eeaddr] = batvol;
      eeaddr += 1;
    }
  }

  uint16_t t = millis();
  now += millis() - checkpoint + 200;
  checkpoint = t;
}
