]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/ParTest.c
54bf8049067bce338725c6c1756cb2391d389364
[freertos] / FreeRTOS / Demo / RX600_RX62N-RDK_Renesas / RTOSDemo / ParTest.c
1 /*\r
2     FreeRTOS V7.3.0 - Copyright (C) 2012 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     >>>NOTE<<< The modification to the GPL is included to allow you to\r
33     distribute a combined work that includes FreeRTOS without being obliged to\r
34     provide the source code for proprietary components outside of the FreeRTOS\r
35     kernel.  FreeRTOS is distributed in the hope that it will be useful, but\r
36     WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\r
37     or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
38     more details. You should have received a copy of the GNU General Public\r
39     License and the FreeRTOS license exception along with FreeRTOS; if not it\r
40     can be viewed here: http://www.freertos.org/a00114.html and also obtained\r
41     by writing to Richard Barry, contact details for whom are available on the\r
42     FreeRTOS WEB site.\r
43 \r
44     1 tab == 4 spaces!\r
45     \r
46     ***************************************************************************\r
47      *                                                                       *\r
48      *    Having a problem?  Start by reading the FAQ "My application does   *\r
49      *    not run, what could be wrong?"                                     *\r
50      *                                                                       *\r
51      *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
52      *                                                                       *\r
53     ***************************************************************************\r
54 \r
55     \r
56     http://www.FreeRTOS.org - Documentation, training, latest versions, license \r
57     and contact details.  \r
58     \r
59     http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
60     including FreeRTOS+Trace - an indispensable productivity tool.\r
61 \r
62     Real Time Engineers ltd license FreeRTOS to High Integrity Systems, who sell \r
63     the code with commercial support, indemnification, and middleware, under \r
64     the OpenRTOS brand: http://www.OpenRTOS.com.  High Integrity Systems also\r
65     provide a safety engineered and independently SIL3 certified version under \r
66     the SafeRTOS brand: http://www.SafeRTOS.com.\r
67 */\r
68 \r
69 /*-----------------------------------------------------------\r
70  * Simple IO routines to control the LEDs.\r
71  *-----------------------------------------------------------*/\r
72 \r
73 /* Scheduler includes. */\r
74 #include "FreeRTOS.h"\r
75 #include "task.h"\r
76 \r
77 /* Demo includes. */\r
78 #include "partest.h"\r
79 \r
80 /* Hardware specifics. */\r
81 #include "iodefine.h"\r
82 \r
83 #define partestNUM_LEDS ( 12 )\r
84 \r
85 long lParTestGetLEDState( unsigned long ulLED );\r
86 \r
87 /*-----------------------------------------------------------*/\r
88 \r
89 void vParTestInitialise( void )\r
90 {\r
91         /* Port pin configuration is done by the low level set up prior to this\r
92         function being called. */\r
93 }\r
94 /*-----------------------------------------------------------*/\r
95 \r
96 void vParTestSetLED( unsigned long ulLED, signed long xValue )\r
97 {\r
98         if( ulLED < partestNUM_LEDS )\r
99         {\r
100                 if( xValue != 0 )\r
101                 {\r
102                         /* Turn the LED on. */\r
103                         taskENTER_CRITICAL();\r
104                         {\r
105                                 switch( ulLED )\r
106                                 {\r
107                                         case 0: LED4 = LED_ON;\r
108                                                         break;\r
109                                         case 1: LED5 = LED_ON;\r
110                                                         break;\r
111                                         case 2: LED6 = LED_ON;\r
112                                                         break;\r
113                                         case 3: LED7 = LED_ON;\r
114                                                         break;\r
115                                         case 4: LED8 = LED_ON;\r
116                                                         break;\r
117                                         case 5: LED9 = LED_ON;\r
118                                                         break;\r
119                                         case 6: LED10 = LED_ON;\r
120                                                         break;\r
121                                         case 7: LED11 = LED_ON;\r
122                                                         break;\r
123                                         case 8: LED12 = LED_ON;\r
124                                                         break;\r
125                                         case 9: LED13 = LED_ON;\r
126                                                         break;\r
127                                         case 10:LED14 = LED_ON;\r
128                                                         break;\r
129                                         case 11:LED15 = LED_ON;\r
130                                                         break;\r
131                                 }\r
132                         }\r
133                         taskEXIT_CRITICAL();\r
134                 }\r
135                 else\r
136                 {\r
137                         /* Turn the LED off. */\r
138                         taskENTER_CRITICAL();\r
139                         {\r
140                                 switch( ulLED )\r
141                                 {\r
142                                         case 0: LED4 = LED_OFF;\r
143                                                         break;\r
144                                         case 1: LED5 = LED_OFF;\r
145                                                         break;\r
146                                         case 2: LED6 = LED_OFF;\r
147                                                         break;\r
148                                         case 3: LED7 = LED_OFF;\r
149                                                         break;\r
150                                         case 4: LED8 = LED_OFF;\r
151                                                         break;\r
152                                         case 5: LED9 = LED_OFF;\r
153                                                         break;\r
154                                         case 6: LED10 = LED_OFF;\r
155                                                         break;\r
156                                         case 7: LED11 = LED_OFF;\r
157                                                         break;\r
158                                         case 8: LED12 = LED_OFF;\r
159                                                         break;\r
160                                         case 9: LED13 = LED_OFF;\r
161                                                         break;\r
162                                         case 10:LED14 = LED_OFF;\r
163                                                         break;\r
164                                         case 11:LED15 = LED_OFF;\r
165                                                         break;\r
166                                 }\r
167 \r
168                         }\r
169                         taskEXIT_CRITICAL();\r
170                 }\r
171         }\r
172 }\r
173 /*-----------------------------------------------------------*/\r
174 \r
175 void vParTestToggleLED( unsigned long ulLED )\r
176 {\r
177         if( ulLED < partestNUM_LEDS )\r
178         {\r
179                 taskENTER_CRITICAL();\r
180                 {\r
181                         if( lParTestGetLEDState( ulLED ) != 0x00 )\r
182                         {\r
183                                 vParTestSetLED( ulLED, 0 );\r
184                         }\r
185                         else\r
186                         {\r
187                                 vParTestSetLED( ulLED, 1 );\r
188                         }\r
189                 }\r
190                 taskEXIT_CRITICAL();\r
191         }\r
192 }\r
193 /*-----------------------------------------------------------*/\r
194 \r
195 long lParTestGetLEDState( unsigned long ulLED )\r
196 {\r
197 long lReturn = pdFALSE;\r
198 \r
199         if( ulLED < partestNUM_LEDS )\r
200         {\r
201                 switch( ulLED )\r
202                 {\r
203                         case 0  :       if( LED4 != LED_OFF )\r
204                                                 {\r
205                                                         lReturn =  pdTRUE;\r
206                                                 }\r
207                                                 break;\r
208                         case 1  :       if( LED5 != LED_OFF )\r
209                                                 {\r
210                                                         lReturn =  pdTRUE;\r
211                                                 }\r
212                                                 break;\r
213                         case 2  :       if( LED6 != LED_OFF )\r
214                                                 {\r
215                                                         lReturn =  pdTRUE;\r
216                                                 }\r
217                                                 break;\r
218                         case 3  :       if( LED7 != LED_OFF )\r
219                                                 {\r
220                                                         lReturn =  pdTRUE;\r
221                                                 }\r
222                                                 break;\r
223                         case 4  :       if( LED8 != LED_OFF )\r
224                                                 {\r
225                                                         lReturn =  pdTRUE;\r
226                                                 }\r
227                                                 break;\r
228                         case 5  :       if( LED9 != LED_OFF )\r
229                                                 {\r
230                                                         lReturn =  pdTRUE;\r
231                                                 }\r
232                                                 break;\r
233                         case 6  :       if( LED10 != LED_OFF )\r
234                                                 {\r
235                                                         lReturn =  pdTRUE;\r
236                                                 }\r
237                                                 break;\r
238                         case 7  :       if( LED11 != LED_OFF )\r
239                                                 {\r
240                                                         lReturn =  pdTRUE;\r
241                                                 }\r
242                                                 break;\r
243                         case 8  :       if( LED12 != LED_OFF )\r
244                                                 {\r
245                                                         lReturn =  pdTRUE;\r
246                                                 }\r
247                                                 break;\r
248                         case 9  :       if( LED13 != LED_OFF )\r
249                                                 {\r
250                                                         lReturn =  pdTRUE;\r
251                                                 }\r
252                                                 break;\r
253                         case 10 :       if( LED14 != LED_OFF )\r
254                                                 {\r
255                                                         lReturn =  pdTRUE;\r
256                                                 }\r
257                                                 break;\r
258                         case 11 :       if( LED15 != LED_OFF )\r
259                                                 {\r
260                                                         lReturn =  pdTRUE;\r
261                                                 }\r
262                                                 break;\r
263                 }\r
264         }\r
265 \r
266         return lReturn;\r
267 }\r
268 /*-----------------------------------------------------------*/\r
269 \r