Added LED_TOGGLE for normal LEDs

This commit is contained in:
Julian Oes 2013-08-15 17:34:49 +02:00
parent f51320d1af
commit 0c4e3dce0e
4 changed files with 38 additions and 0 deletions

View File

@ -57,6 +57,7 @@ __BEGIN_DECLS
extern void led_init();
extern void led_on(int led);
extern void led_off(int led);
extern void led_toggle(int led);
__END_DECLS
__EXPORT void led_init()
@ -94,3 +95,21 @@ __EXPORT void led_off(int led)
stm32_gpiowrite(GPIO_LED2, true);
}
}
__EXPORT void led_toggle(int led)
{
if (led == 0)
{
if (stm32_gpioread(GPIO_LED1))
stm32_gpiowrite(GPIO_LED1, false);
else
stm32_gpiowrite(GPIO_LED1, true);
}
if (led == 1)
{
if (stm32_gpioread(GPIO_LED2))
stm32_gpiowrite(GPIO_LED2, false);
else
stm32_gpiowrite(GPIO_LED2, true);
}
}

View File

@ -57,6 +57,7 @@ __BEGIN_DECLS
extern void led_init();
extern void led_on(int led);
extern void led_off(int led);
extern void led_toggle(int led);
__END_DECLS
__EXPORT void led_init()
@ -83,3 +84,14 @@ __EXPORT void led_off(int led)
stm32_gpiowrite(GPIO_LED1, true);
}
}
__EXPORT void led_toggle(int led)
{
if (led == 1)
{
if (stm32_gpioread(GPIO_LED1))
stm32_gpiowrite(GPIO_LED1, false);
else
stm32_gpiowrite(GPIO_LED1, true);
}
}

View File

@ -54,6 +54,7 @@
#define LED_ON _IOC(_LED_BASE, 0)
#define LED_OFF _IOC(_LED_BASE, 1)
#define LED_TOGGLE _IOC(_LED_BASE, 2)
__BEGIN_DECLS

View File

@ -52,6 +52,7 @@ __BEGIN_DECLS
extern void led_init();
extern void led_on(int led);
extern void led_off(int led);
extern void led_toggle(int led);
__END_DECLS
class LED : device::CDev
@ -98,6 +99,11 @@ LED::ioctl(struct file *filp, int cmd, unsigned long arg)
led_off(arg);
break;
case LED_TOGGLE:
led_toggle(arg);
break;
default:
result = CDev::ioctl(filp, cmd, arg);
}