-static void print_blanks(uint_fast8_t count)
-{
- while(count--)
- putchar(' ');
-}
-
-static const FLASH char * const FLASH pinconf_str[] = {
- FSTR("Input"),
- FSTR("Pullup"),
- FSTR("Output"),
- FSTR("Clock"),
- };
-
-static const FLASH char * const FLASH pinlevel_str[] = {
- FSTR("Low"),
- FSTR("High"),
- FSTR(""),
- };
-
-int print_pin(int pin, int multi)
-{
- int pinconf;
- const FLASH char *levelp;
- long div;
-
- pinconf = pin_config_get(pin);
- if (pinconf == OUTPUT_TIMER) {
- div = pin_clockdiv_get(pin);
- levelp = pinlevel_str[2];
- } else
- levelp = pinlevel_str[pin_read(pin)];
-
- if (multi) {
- printf_P(PSTR("%3d "), pin);
- my_puts_P(pinconf_str[pinconf]);
- print_blanks(8 - strlen_P(pinconf_str[pinconf]));
- my_puts_P(levelp);
- print_blanks(6 - strlen_P(levelp));
- if (pinconf == OUTPUT_TIMER)
- printf_P(PSTR("%7ld %8ld"),
- div, F_CPU/div);
- } else {
- printf_P(PSTR("Pin %d: "), pin);
- my_puts_P(pinconf_str[pinconf]);
- printf_P(PSTR(", "));
- my_puts_P(levelp);
-
- if (pinconf == OUTPUT_TIMER)
- printf_P(PSTR("divide by %ld (%ldHz)"),
- div, F_CPU/div);
- }
- printf_P(PSTR("\n"));
-
- return 0;
-}
-
-
-/*
- * TODO: - pin groups
- * - error if pin "config clock" on pins without clock
- * - stat for single pin (group)
- */
-
-command_ret_t do_pin(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[])
-{
- int opt, pin;
- unsigned long value;
- char *endp;
- char printheader = 1;