parent
6394c5f006
commit
914b168727
@ -0,0 +1,3 @@ |
|||||||
|
#pragma once |
||||||
|
|
||||||
|
int shell_led(struct console *con, size_t argc, const char **argv); |
@ -0,0 +1,36 @@ |
|||||||
|
#include <stdio.h> |
||||||
|
#include <stdlib.h> |
||||||
|
#include <string.h> |
||||||
|
|
||||||
|
#include <libopencm3/stm32/gpio.h> |
||||||
|
|
||||||
|
#include <console.h> |
||||||
|
#include <led.h> |
||||||
|
|
||||||
|
extern struct led leds[]; |
||||||
|
extern size_t nleds; |
||||||
|
|
||||||
|
int shell_led(struct console *con, size_t argc, const char **argv) |
||||||
|
{ |
||||||
|
size_t led_id = 0; |
||||||
|
int state = 0; |
||||||
|
|
||||||
|
if (argc >= 2) |
||||||
|
state = (strcmp(argv[1], "on") == 0); |
||||||
|
|
||||||
|
if (argc >= 1) |
||||||
|
led_id = strtoul(argv[0], NULL, 0); |
||||||
|
|
||||||
|
if (led_id > nleds) { |
||||||
|
fprintf(con->fp, "error: unknown LED ID %d\n", led_id); |
||||||
|
return -1; |
||||||
|
} |
||||||
|
|
||||||
|
if (state) { |
||||||
|
led_enable(leds + led_id); |
||||||
|
} else { |
||||||
|
led_disable(leds + led_id); |
||||||
|
} |
||||||
|
|
||||||
|
return 0; |
||||||
|
} |
Loading…
Reference in new issue