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