X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/fcf1d5b30bd3b341fb7596aef395f347c6dc97b4..aea51b6c4c93c56715f50e64d424e1181c6d0242:/avr/cmd_misc.c diff --git a/avr/cmd_misc.c b/avr/cmd_misc.c index a0ee26e..63a510c 100644 --- a/avr/cmd_misc.c +++ b/avr/cmd_misc.c @@ -7,11 +7,10 @@ * SPDX-License-Identifier: GPL-2.0 */ -#include "common.h" +#include "cmd_misc.h" #include "eval_arg.h" #include -#include "command.h" #include "timer.h" #include "con-utils.h" #include "getopt-min.h" @@ -23,9 +22,6 @@ command_ret_t do_echo(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * cons (void) cmdtp; (void) flag; - /* reset getopt() */ - optind = 0; - int opt; while ((opt = getopt(argc, argv, PSTR("n"))) != -1) { switch (opt) { @@ -87,3 +83,28 @@ command_ret_t do_sleep(cmd_tbl_t *cmdtp, uint_fast8_t flag, int argc, char * con return CMD_RET_SUCCESS; } + +command_ret_t do_time(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char * const argv[]) +{ + uint32_t elapsed_ms = 0; + command_ret_t retval; + uint_fast8_t repeatable; + + if (argc == 1) + return CMD_RET_USAGE; + + elapsed_ms = get_timer(0); + retval = cmd_process(0, argc - 1, argv + 1, &repeatable); + elapsed_ms = get_timer(elapsed_ms); + + uint32_t min; + uint16_t sec, ms; + + min = elapsed_ms / 1000 / 60; + sec = (elapsed_ms / 1000) % 60; + ms = elapsed_ms % 1000; + + printf_P(PSTR("\ntime: %lum %u.%03us\n"), min, sec, ms); + + return retval; +}