]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/ParTest.c
4fd5e14a8db1f31b821909ea2543515ec802e698
[freertos] / FreeRTOS / Demo / RX600_RX62N-RDK_GNURX / RTOSDemo / ParTest.c
1 /*\r
2     FreeRTOS V7.5.1 - Copyright (C) 2013 Real Time Engineers Ltd.\r
3 \r
4     VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
5 \r
6     ***************************************************************************\r
7      *                                                                       *\r
8      *    FreeRTOS provides completely free yet professionally developed,    *\r
9      *    robust, strictly quality controlled, supported, and cross          *\r
10      *    platform software that has become a de facto standard.             *\r
11      *                                                                       *\r
12      *    Help yourself get started quickly and support the FreeRTOS         *\r
13      *    project by purchasing a FreeRTOS tutorial book, reference          *\r
14      *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
15      *                                                                       *\r
16      *    Thank you!                                                         *\r
17      *                                                                       *\r
18     ***************************************************************************\r
19 \r
20     This file is part of the FreeRTOS distribution.\r
21 \r
22     FreeRTOS is free software; you can redistribute it and/or modify it under\r
23     the terms of the GNU General Public License (version 2) as published by the\r
24     Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
25 \r
26     >>! NOTE: The modification to the GPL is included to allow you to distribute\r
27     >>! a combined work that includes FreeRTOS without being obliged to provide\r
28     >>! the source code for proprietary components outside of the FreeRTOS\r
29     >>! kernel.\r
30 \r
31     FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
32     WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
33     FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
34     link: http://www.freertos.org/a00114.html\r
35 \r
36     1 tab == 4 spaces!\r
37 \r
38     ***************************************************************************\r
39      *                                                                       *\r
40      *    Having a problem?  Start by reading the FAQ "My application does   *\r
41      *    not run, what could be wrong?"                                     *\r
42      *                                                                       *\r
43      *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
44      *                                                                       *\r
45     ***************************************************************************\r
46 \r
47     http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
48     license and Real Time Engineers Ltd. contact details.\r
49 \r
50     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
51     including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
52     compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
53 \r
54     http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
55     Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
56     licenses offer ticketed support, indemnification and middleware.\r
57 \r
58     http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
59     engineered and independently SIL3 certified version for use in safety and\r
60     mission critical applications that require provable dependability.\r
61 \r
62     1 tab == 4 spaces!\r
63 */\r
64 \r
65 /*-----------------------------------------------------------\r
66  * Simple IO routines to control the LEDs.\r
67  *-----------------------------------------------------------*/\r
68 \r
69 /* Scheduler includes. */\r
70 #include "FreeRTOS.h"\r
71 #include "task.h"\r
72 \r
73 /* Demo includes. */\r
74 #include "partest.h"\r
75 \r
76 /* Hardware specifics. */\r
77 #include <iodefine.h>\r
78 \r
79 #define partestNUM_LEDS ( 12 )\r
80 \r
81 long lParTestGetLEDState( unsigned long ulLED );\r
82 \r
83 /*-----------------------------------------------------------*/\r
84 \r
85 void vParTestInitialise( void )\r
86 {\r
87         /* Port pin configuration is done by the low level set up prior to this\r
88         function being called. */\r
89 }\r
90 /*-----------------------------------------------------------*/\r
91 \r
92 void vParTestSetLED( unsigned long ulLED, signed long xValue )\r
93 {\r
94         if( ulLED < partestNUM_LEDS )\r
95         {\r
96                 if( xValue != 0 )\r
97                 {\r
98                         /* Turn the LED on. */\r
99                         taskENTER_CRITICAL();\r
100                         {\r
101                                 switch( ulLED )\r
102                                 {\r
103                                         case 0: LED4 = LED_ON;\r
104                                                         break;\r
105                                         case 1: LED5 = LED_ON;\r
106                                                         break;\r
107                                         case 2: LED6 = LED_ON;\r
108                                                         break;\r
109                                         case 3: LED7 = LED_ON;\r
110                                                         break;\r
111                                         case 4: LED8 = LED_ON;\r
112                                                         break;\r
113                                         case 5: LED9 = LED_ON;\r
114                                                         break;\r
115                                         case 6: LED10 = LED_ON;\r
116                                                         break;\r
117                                         case 7: LED11 = LED_ON;\r
118                                                         break;\r
119                                         case 8: LED12 = LED_ON;\r
120                                                         break;\r
121                                         case 9: LED13 = LED_ON;\r
122                                                         break;\r
123                                         case 10:LED14 = LED_ON;\r
124                                                         break;\r
125                                         case 11:LED15 = LED_ON;\r
126                                                         break;\r
127                                 }\r
128                         }\r
129                         taskEXIT_CRITICAL();\r
130                 }\r
131                 else\r
132                 {\r
133                         /* Turn the LED off. */\r
134                         taskENTER_CRITICAL();\r
135                         {\r
136                                 switch( ulLED )\r
137                                 {\r
138                                         case 0: LED4 = LED_OFF;\r
139                                                         break;\r
140                                         case 1: LED5 = LED_OFF;\r
141                                                         break;\r
142                                         case 2: LED6 = LED_OFF;\r
143                                                         break;\r
144                                         case 3: LED7 = LED_OFF;\r
145                                                         break;\r
146                                         case 4: LED8 = LED_OFF;\r
147                                                         break;\r
148                                         case 5: LED9 = LED_OFF;\r
149                                                         break;\r
150                                         case 6: LED10 = LED_OFF;\r
151                                                         break;\r
152                                         case 7: LED11 = LED_OFF;\r
153                                                         break;\r
154                                         case 8: LED12 = LED_OFF;\r
155                                                         break;\r
156                                         case 9: LED13 = LED_OFF;\r
157                                                         break;\r
158                                         case 10:LED14 = LED_OFF;\r
159                                                         break;\r
160                                         case 11:LED15 = LED_OFF;\r
161                                                         break;\r
162                                 }\r
163 \r
164                         }\r
165                         taskEXIT_CRITICAL();\r
166                 }\r
167         }\r
168 }\r
169 /*-----------------------------------------------------------*/\r
170 \r
171 void vParTestToggleLED( unsigned long ulLED )\r
172 {\r
173         if( ulLED < partestNUM_LEDS )\r
174         {\r
175                 taskENTER_CRITICAL();\r
176                 {\r
177                         if( lParTestGetLEDState( ulLED ) != 0x00 )\r
178                         {\r
179                                 vParTestSetLED( ulLED, 0 );\r
180                         }\r
181                         else\r
182                         {\r
183                                 vParTestSetLED( ulLED, 1 );\r
184                         }\r
185                 }\r
186                 taskEXIT_CRITICAL();\r
187         }\r
188 }\r
189 /*-----------------------------------------------------------*/\r
190 \r
191 long lParTestGetLEDState( unsigned long ulLED )\r
192 {\r
193 long lReturn = pdFALSE;\r
194 \r
195         if( ulLED < partestNUM_LEDS )\r
196         {\r
197                 switch( ulLED )\r
198                 {\r
199                         case 0  :       if( LED4 != LED_OFF )\r
200                                                 {\r
201                                                         lReturn =  pdTRUE;\r
202                                                 }\r
203                                                 break;\r
204                         case 1  :       if( LED5 != LED_OFF )\r
205                                                 {\r
206                                                         lReturn =  pdTRUE;\r
207                                                 }\r
208                                                 break;\r
209                         case 2  :       if( LED6 != LED_OFF )\r
210                                                 {\r
211                                                         lReturn =  pdTRUE;\r
212                                                 }\r
213                                                 break;\r
214                         case 3  :       if( LED7 != LED_OFF )\r
215                                                 {\r
216                                                         lReturn =  pdTRUE;\r
217                                                 }\r
218                                                 break;\r
219                         case 4  :       if( LED8 != LED_OFF )\r
220                                                 {\r
221                                                         lReturn =  pdTRUE;\r
222                                                 }\r
223                                                 break;\r
224                         case 5  :       if( LED9 != LED_OFF )\r
225                                                 {\r
226                                                         lReturn =  pdTRUE;\r
227                                                 }\r
228                                                 break;\r
229                         case 6  :       if( LED10 != LED_OFF )\r
230                                                 {\r
231                                                         lReturn =  pdTRUE;\r
232                                                 }\r
233                                                 break;\r
234                         case 7  :       if( LED11 != LED_OFF )\r
235                                                 {\r
236                                                         lReturn =  pdTRUE;\r
237                                                 }\r
238                                                 break;\r
239                         case 8  :       if( LED12 != LED_OFF )\r
240                                                 {\r
241                                                         lReturn =  pdTRUE;\r
242                                                 }\r
243                                                 break;\r
244                         case 9  :       if( LED13 != LED_OFF )\r
245                                                 {\r
246                                                         lReturn =  pdTRUE;\r
247                                                 }\r
248                                                 break;\r
249                         case 10 :       if( LED14 != LED_OFF )\r
250                                                 {\r
251                                                         lReturn =  pdTRUE;\r
252                                                 }\r
253                                                 break;\r
254                         case 11 :       if( LED15 != LED_OFF )\r
255                                                 {\r
256                                                         lReturn =  pdTRUE;\r
257                                                 }\r
258                                                 break;\r
259                 }\r
260         }\r
261 \r
262         return lReturn;\r
263 }\r
264 /*-----------------------------------------------------------*/\r
265 \r