Exemplo n.º 1
0
double Timer::duration() {
	time_type end, dt;
	end = get_time();
	dt = end - s;
	s = end;
	return time_to_msec(dt);
}
Exemplo n.º 2
0
int main(void)
{
  unsigned int sec_time;
  unsigned long prev_total_sys_time;
  unsigned long count_sys_time;

  TIME now;
  key_status key;

  char flag = 0;

  ROMEMU();

  sys_time = 0;
  total_sys_time = 0;
  prev_total_sys_time = 0;
  count_sys_time = 0;
  sec_time = 0;

  timer_init();
  timer_set(0,INT1MS);
  timer_start(0);

  lcd_init();

  time_init(&now);

  key_init(&key);

  lcd_cursor(0,0);
  time_print(now);

  ENINT();

  while (1) {

	if(sys_time>=1000)
	{
	  sec_time++;
	  sys_time = 0;
	}

	key_scan(&key);

	switch(key_press_check(&key))
	{
	case '0':
	  if(flag==1)
	  {
	    count_sys_time = time_to_msec(now);
		prev_total_sys_time = total_sys_time;
		flag = 0;
	  }
	  else
	  {
	    flag = 1;
	  }
	  break;
	case '6':
	  if(flag==1)
	  {
		if(now.second<60)
		  now.second += 1;
		count_sys_time=time_to_msec(now);
	  }
	  break;
	case '9':
	  if(flag==1)
	  {
		if(now.second>0)
		  now.second -= 1;
		count_sys_time=time_to_msec(now);
	  }
	  break;
	case '5':
	  if(flag==1)
	  {
		if(now.minute<60)
		  now.minute += 1;
		count_sys_time=time_to_msec(now);
	  }
	  break;
	case '8':
	  if(flag==1)
	  {
		if(now.minute>0)
		  now.minute -= 1;
		count_sys_time=time_to_msec(now);
	  }
	  break;
	case '4':
	  if(flag==1)
	  {
		if(now.hour<23)
		now.hour += 1;
		count_sys_time=time_to_msec(now);
	  }
	  break;
	case '7':
	  if(flag==1)
	  {
		if(now.hour>0)
		  now.hour -= 1;
		count_sys_time=time_to_msec(now);
	  }
	  break;
	}

	if(flag==0)
	{
	  count_sys_time += total_sys_time - prev_total_sys_time;
	  prev_total_sys_time = total_sys_time;
	}

	lcd_cursor(0,0);
	time_msec_to(&now,count_sys_time);
	time_print(now);
  }
  return 1;
}
Exemplo n.º 3
0
Arquivo: run.c Projeto: cantora/ccan
int main(void)
{
	struct timespec t1, t2, t3, zero = { 0, 0 };

	plan_tests(61);

	/* Test time_now */
	t1 = time_now();
	t2 = time_now();

	/* Test time_sub. */
	t3 = time_sub(t2, t1);
	ok1(t3.tv_sec > 0 || t3.tv_nsec >= 0);
	t3 = time_sub(t2, t2);
	ok1(t3.tv_sec == 0 && t3.tv_nsec == 0);
	t3 = time_sub(t1, t1);
	ok1(t3.tv_sec == 0 && t3.tv_nsec == 0);

	/* Test time_eq */
	ok1(time_eq(t1, t1));
	ok1(time_eq(t2, t2));
	ok1(!time_eq(t1, t3));
	ok1(!time_eq(t2, t3));

	/* Make sure t2 > t1. */
	t3.tv_sec = 0;
	t3.tv_nsec = 1;
	t2 = time_add(t2, t3);

	/* Test time_less and time_greater. */
	ok1(!time_eq(t1, t2));
	ok1(!time_greater(t1, t2));
	ok1(time_less(t1, t2));
	ok1(time_greater(t2, t1));
	ok1(!time_less(t2, t1));
	t3.tv_sec = 0;
	t3.tv_nsec = 999999999;
	t2 = time_add(t2, t3);
	ok1(!time_eq(t1, t2));
	ok1(!time_greater(t1, t2));
	ok1(time_less(t1, t2));
	ok1(time_greater(t2, t1));
	ok1(!time_less(t2, t1));

	t3 = time_sub(t2, zero);
	ok1(time_eq(t3, t2));
	t3 = time_sub(t2, t2);
	ok1(time_eq(t3, zero));

	/* time_from_sec / time_to_sec */
	t3 = time_from_sec(500);
	ok1(t3.tv_sec == 500);
	ok1(t3.tv_nsec == 0);
	ok1(time_to_sec(t3) == 500);

	/* time_from_msec / time_to_msec */
	t3 = time_from_msec(500);
	ok1(t3.tv_sec == 0);
	ok1(t3.tv_nsec == 500000000);
	ok1(time_to_msec(t3) == 500);

	t3 = time_from_msec(1000);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 0);
	ok1(time_to_msec(t3) == 1000);

	t3 = time_from_msec(1500);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 500000000);
	ok1(time_to_msec(t3) == 1500);

	/* time_from_usec */
	t3 = time_from_usec(500000);
	ok1(t3.tv_sec == 0);
	ok1(t3.tv_nsec == 500000000);
	ok1(time_to_usec(t3) == 500000);

	t3 = time_from_usec(1000000);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 0);
	ok1(time_to_usec(t3) == 1000000);

	t3 = time_from_usec(1500000);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 500000000);
	ok1(time_to_usec(t3) == 1500000);

	/* time_from_nsec */
	t3 = time_from_nsec(500000000);
	ok1(t3.tv_sec == 0);
	ok1(t3.tv_nsec == 500000000);
	ok1(time_to_nsec(t3) == 500000000);

	t3 = time_from_nsec(1000000000);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 0);
	ok1(time_to_nsec(t3) == 1000000000);

	t3 = time_from_nsec(1500000000);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 500000000);
	ok1(time_to_nsec(t3) == 1500000000);

	/* Test wrapunder */
	t3 = time_sub(time_sub(t2, time_from_msec(500)), time_from_msec(500));
	ok1(t3.tv_sec == t2.tv_sec - 1);
	ok1(t3.tv_nsec == t2.tv_nsec);

	/* time_divide and time_multiply */
	t1.tv_nsec = 100;
	t1.tv_sec = 100;

	t3 = time_divide(t1, 2);
	ok1(t3.tv_sec == 50);
	ok1(t3.tv_nsec == 50);

	t3 = time_divide(t1, 100);
	ok1(t3.tv_sec == 1);
	ok1(t3.tv_nsec == 1);

	t3 = time_multiply(t3, 100);
	ok1(time_eq(t3, t1));

	t3 = time_divide(t1, 200);
	ok1(t3.tv_sec == 0);
	ok1(t3.tv_nsec == 500000000);

	/* Divide by huge number. */
	t1.tv_sec = (1U << 31) - 1;
	t1.tv_nsec = 999999999;
	t2 = time_divide(t1, 1 << 30);
	/* Allow us to round either way. */
	ok1((t2.tv_sec == 2 && t2.tv_nsec == 0)
	    || (t2.tv_sec == 1 && t2.tv_nsec == 999999999));

	/* Multiply by huge number. */
	t1.tv_sec = 0;
	t1.tv_nsec = 1;
	t2 = time_multiply(t1, 1UL << 31);
	ok1(t2.tv_sec == 2);
	ok1(t2.tv_nsec == 147483648);

	return exit_status();
}