diff options
author | Leo C | 2018-10-01 15:49:00 +0200 |
---|---|---|
committer | Leo C | 2018-10-01 15:49:00 +0200 |
commit | d2f546c134b8c7ae6e2068aaf9316bb8835c13c2 (patch) | |
tree | 0f846ea2a82a91958975f36c306e298018e20342 /avr/cmd_misc.c | |
parent | f6154a3944b775a6d6846f132b184d94b44bc204 (diff) | |
parent | dd1cc6f0b4a9cc2b49afb86c768813c087e46b4b (diff) | |
download | z180-stamp-d2f546c134b8c7ae6e2068aaf9316bb8835c13c2.zip |
Merge branch 'z80-if' of ssh://cb/home/leo/Projekte/stamp/z180-stamp into z80-if
Diffstat (limited to 'avr/cmd_misc.c')
-rw-r--r-- | avr/cmd_misc.c | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/avr/cmd_misc.c b/avr/cmd_misc.c index a88ba72..ad913e8 100644 --- a/avr/cmd_misc.c +++ b/avr/cmd_misc.c @@ -22,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) { @@ -86,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; +} |