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