]> git.sur5r.net Git - freertos/blob - Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c
6abffa40450c885af6dffd90555e70cf02358b46
[freertos] / Demo / RX600_RX62N-RDK_Renesas / RTOSDemo / ParTest.c
1 /*\r
2     FreeRTOS V6.0.5 - Copyright (C) 2010 Real Time Engineers Ltd.\r
3 \r
4     ***************************************************************************\r
5     *                                                                         *\r
6     * If you are:                                                             *\r
7     *                                                                         *\r
8     *    + New to FreeRTOS,                                                   *\r
9     *    + Wanting to learn FreeRTOS or multitasking in general quickly       *\r
10     *    + Looking for basic training,                                        *\r
11     *    + Wanting to improve your FreeRTOS skills and productivity           *\r
12     *                                                                         *\r
13     * then take a look at the FreeRTOS eBook                                  *\r
14     *                                                                         *\r
15     *        "Using the FreeRTOS Real Time Kernel - a Practical Guide"        *\r
16     *                  http://www.FreeRTOS.org/Documentation                  *\r
17     *                                                                         *\r
18     * A pdf reference manual is also available.  Both are usually delivered   *\r
19     * to your inbox within 20 minutes to two hours when purchased between 8am *\r
20     * and 8pm GMT (although please allow up to 24 hours in case of            *\r
21     * exceptional circumstances).  Thank you for your support!                *\r
22     *                                                                         *\r
23     ***************************************************************************\r
24 \r
25     This file is part of the FreeRTOS distribution.\r
26 \r
27     FreeRTOS is free software; you can redistribute it and/or modify it under\r
28     the terms of the GNU General Public License (version 2) as published by the\r
29     Free Software Foundation AND MODIFIED BY the FreeRTOS exception.\r
30     ***NOTE*** The exception to the GPL is included to allow you to distribute\r
31     a combined work that includes FreeRTOS without being obliged to provide the\r
32     source code for proprietary components outside of the FreeRTOS kernel.\r
33     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT\r
34     ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
35     FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
36     more details. You should have received a copy of the GNU General Public\r
37     License and the FreeRTOS license exception along with FreeRTOS; if not it\r
38     can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
39     by writing to Richard Barry, contact details for whom are available on the\r
40     FreeRTOS WEB site.\r
41 \r
42     1 tab == 4 spaces!\r
43 \r
44     http://www.FreeRTOS.org - Documentation, latest information, license and\r
45     contact details.\r
46 \r
47     http://www.SafeRTOS.com - A version that is certified for use in safety\r
48     critical systems.\r
49 \r
50     http://www.OpenRTOS.com - Commercial support, development, porting,\r
51     licensing and training services.\r
52 */\r
53 \r
54 /*-----------------------------------------------------------\r
55  * Simple IO routines to control the LEDs.\r
56  *-----------------------------------------------------------*/\r
57 \r
58 /* Scheduler includes. */\r
59 #include "FreeRTOS.h"\r
60 #include "task.h"\r
61 \r
62 /* Demo includes. */\r
63 #include "partest.h"\r
64 \r
65 /* Hardware specifics. */\r
66 #include "iodefine.h"\r
67 \r
68 #define partestNUM_LEDS ( 12 )\r
69 \r
70 long lParTestGetLEDState( unsigned long ulLED );\r
71 \r
72 /*-----------------------------------------------------------*/\r
73 \r
74 void vParTestInitialise( void )\r
75 {\r
76         /* Port pin configuration is done by the low level set up prior to this\r
77         function being called. */\r
78 \r
79         /* Start with all LEDs off. */\r
80         LED0 = LED_OFF;\r
81         LED1 = LED_OFF;\r
82         LED2 = LED_OFF;\r
83         LED3 = LED_OFF;\r
84         LED4 = LED_OFF;\r
85         LED5 = LED_OFF;\r
86         LED6 = LED_OFF;\r
87         LED7 = LED_OFF;\r
88         LED8 = LED_OFF;\r
89         LED9 = LED_OFF;\r
90         LED10 = LED_OFF;\r
91         LED11 = LED_OFF;\r
92 }\r
93 /*-----------------------------------------------------------*/\r
94 \r
95 void vParTestSetLED( unsigned long ulLED, signed long xValue )\r
96 {\r
97         if( ulLED < partestNUM_LEDS )\r
98         {\r
99                 if( xValue != 0 )\r
100                 {\r
101                         /* Turn the LED on. */\r
102                         taskENTER_CRITICAL();\r
103                         {\r
104                                 switch( ulLED )\r
105                                 {\r
106                                         case 0: LED0 = LED_ON;\r
107                                                         break;\r
108                                         case 1: LED1 = LED_ON;\r
109                                                         break;\r
110                                         case 2: LED2 = LED_ON;\r
111                                                         break;\r
112                                         case 3: LED3 = LED_ON;\r
113                                                         break;\r
114                                         case 4: LED4 = LED_ON;\r
115                                                         break;\r
116                                         case 5: LED5 = LED_ON;\r
117                                                         break;\r
118                                         case 6: LED6 = LED_ON;\r
119                                                         break;\r
120                                         case 7: LED7 = LED_ON;\r
121                                                         break;\r
122                                         case 8: LED8 = LED_ON;\r
123                                                         break;\r
124                                         case 9: LED9 = LED_ON;\r
125                                                         break;\r
126                                         case 10:LED10 = LED_ON;\r
127                                                         break;\r
128                                         case 11:LED11 = LED_ON;\r
129                                                         break;\r
130                                 }\r
131                         }\r
132                         taskEXIT_CRITICAL();\r
133                 }\r
134                 else\r
135                 {\r
136                         /* Turn the LED off. */\r
137                         taskENTER_CRITICAL();\r
138                         {\r
139                                 switch( ulLED )\r
140                                 {\r
141                                         case 0: LED0 = LED_OFF;\r
142                                                         break;\r
143                                         case 1: LED1 = LED_OFF;\r
144                                                         break;\r
145                                         case 2: LED2 = LED_OFF;\r
146                                                         break;\r
147                                         case 3: LED3 = LED_OFF;\r
148                                                         break;\r
149                                         case 4: LED4 = LED_OFF;\r
150                                                         break;\r
151                                         case 5: LED5 = LED_OFF;\r
152                                                         break;\r
153                                         case 6: LED6 = LED_OFF;\r
154                                                         break;\r
155                                         case 7: LED7 = LED_OFF;\r
156                                                         break;\r
157                                         case 8: LED8 = LED_OFF;\r
158                                                         break;\r
159                                         case 9: LED9 = LED_OFF;\r
160                                                         break;\r
161                                         case 10:LED10 = LED_OFF;\r
162                                                         break;\r
163                                         case 11:LED11 = LED_OFF;\r
164                                                         break;\r
165                                 }\r
166 \r
167                         }\r
168                         taskEXIT_CRITICAL();\r
169                 }\r
170         }\r
171 }\r
172 /*-----------------------------------------------------------*/\r
173 \r
174 void vParTestToggleLED( unsigned long ulLED )\r
175 {\r
176         if( ulLED < partestNUM_LEDS )\r
177         {\r
178                 taskENTER_CRITICAL();\r
179                 {\r
180                         if( lParTestGetLEDState( ulLED ) != 0x00 )\r
181                         {\r
182                                 vParTestSetLED( ulLED, 0 );\r
183                         }\r
184                         else\r
185                         {\r
186                                 vParTestSetLED( ulLED, 1 );\r
187                         }\r
188                 }\r
189                 taskEXIT_CRITICAL();\r
190         }\r
191 }\r
192 /*-----------------------------------------------------------*/\r
193 \r
194 long lParTestGetLEDState( unsigned long ulLED )\r
195 {\r
196 long lReturn = pdFALSE;\r
197 \r
198         if( ulLED < partestNUM_LEDS )\r
199         {\r
200                 switch( ulLED )\r
201                 {\r
202                         case 0  :       if( LED0 != 0 )\r
203                                                 {\r
204                                                         lReturn =  pdTRUE;\r
205                                                 }\r
206                                                 break;\r
207                         case 1  :       if( LED1 != 0 )\r
208                                                 {\r
209                                                         lReturn =  pdTRUE;\r
210                                                 }\r
211                                                 break;\r
212                         case 2  :       if( LED2 != 0 )\r
213                                                 {\r
214                                                         lReturn =  pdTRUE;\r
215                                                 }\r
216                                                 break;\r
217                         case 3  :       if( LED3 != 0 )\r
218                                                 {\r
219                                                         lReturn =  pdTRUE;\r
220                                                 }\r
221                                                 break;\r
222                         case 4  :       if( LED4 != 0 )\r
223                                                 {\r
224                                                         lReturn =  pdTRUE;\r
225                                                 }\r
226                                                 break;\r
227                         case 5  :       if( LED5 != 0 )\r
228                                                 {\r
229                                                         lReturn =  pdTRUE;\r
230                                                 }\r
231                                                 break;\r
232                         case 6  :       if( LED6 != 0 )\r
233                                                 {\r
234                                                         lReturn =  pdTRUE;\r
235                                                 }\r
236                                                 break;\r
237                         case 7  :       if( LED7 != 0 )\r
238                                                 {\r
239                                                         lReturn =  pdTRUE;\r
240                                                 }\r
241                                                 break;\r
242                         case 8  :       if( LED8 != 0 )\r
243                                                 {\r
244                                                         lReturn =  pdTRUE;\r
245                                                 }\r
246                                                 break;\r
247                         case 9  :       if( LED9 != 0 )\r
248                                                 {\r
249                                                         lReturn =  pdTRUE;\r
250                                                 }\r
251                                                 break;\r
252                         case 10 :       if( LED10 != 0 )\r
253                                                 {\r
254                                                         lReturn =  pdTRUE;\r
255                                                 }\r
256                                                 break;\r
257                         case 11 :       if( LED11 != 0 )\r
258                                                 {\r
259                                                         lReturn =  pdTRUE;\r
260                                                 }\r
261                                                 break;\r
262                 }\r
263         }\r
264 \r
265         return lReturn;\r
266 }\r
267 /*-----------------------------------------------------------*/\r
268 \r