OSDN Git Service

First commitment for the BlackTank LPC1769.
[blacktank/blacktank.git] / task_led.h
1 /**
2  * @file task_led.h
3  * @author Shinichiro Nakamura
4  * @brief LEDタスクの定義(task_led)
5  * @details
6  * LEDタスクはLEDの点灯を制御するタスクである。
7  * 点灯は各タスクからマクロで指示することができる。
8  */
9
10 /**
11  * @example
12  * LEDの点灯指令は以下のマクロを使って行うことができる。
13  *
14  * @code
15  * LEDMSG(target, control);
16  * @endcode
17  *
18  * このマクロは、タスクコンテキスト内のどこからでも呼ぶことができる。
19  */
20
21 #ifndef _TASK_LED_H_
22 #define _TASK_LED_H_
23
24 #include "target_test.h"
25
26 /**
27  * @brief タスクプライオリティ。(LEDタスク)
28  */
29 #define TSKPRI_LED  11
30 #define TSKSTK_LED  STACK_SIZE
31
32 #ifndef TOPPERS_MACRO_ONLY
33
34 /**
35  * @defgroup BLACKTANK_LPC1769_TASK_LED_CLIENT
36  * @ingroup BLACKTANK_LPC1769_TASK_LED
37  * @{
38  */
39
40 #define DBLED0 0    /**< デバッグ用LED0 */
41 #define DBLED1 1    /**< デバッグ用LED1 */
42 #define DBLED2 2    /**< デバッグ用LED2 */
43 #define DBLED3 3    /**< デバッグ用LED3 */
44 #define SWLED0 4    /**< スイッチ用LED0 */
45 #define SWLED1 5    /**< スイッチ用LED1 */
46 #define SWLED2 6    /**< スイッチ用LED2 */
47 #define SWLED3 7    /**< スイッチ用LED3 */
48
49 #define LEDOFF 0    /**< LEDを消灯する。 */
50 #define LEDON 1     /**< LEDを点灯する。 */
51
52 #define TSKAPI_LED_LEDMSG(TARGET, CONTROL) \
53     snd_dtq(DTQ_LED, (intptr_t)(((CONTROL) ? 0x80:0x00) | ((TARGET)& 0x0F)))
54 /**<
55  * LEDの点灯指令を行う。
56  *
57  * @param TARGET ターゲット。
58  * @param CONTROL 制御内容。
59  */
60
61 /**
62  * @}
63  */
64
65 /**
66  * @defgroup BLACKTANK_LPC1769_TASK_LED
67  * @ingroup BLACKTANK_LPC1769_TASK
68  * @{
69  */
70
71 void task_led(intptr_t exinf);
72
73 /**
74  * @}
75  */
76
77 #endif
78
79 #endif