]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_LPC1768_GCC_RedSuite/src/ParTest.c
e6941d08dbfe9dbf9d17ad6e1ea3dde8ca26fc53
[freertos] / FreeRTOS / Demo / CORTEX_LPC1768_GCC_RedSuite / src / ParTest.c
1 /*\r
2  * FreeRTOS Kernel V10.1.0\r
3  * Copyright (C) 2017 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r
4  *\r
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of\r
6  * this software and associated documentation files (the "Software"), to deal in\r
7  * the Software without restriction, including without limitation the rights to\r
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\r
9  * the Software, and to permit persons to whom the Software is furnished to do so,\r
10  * subject to the following conditions:\r
11  *\r
12  * The above copyright notice and this permission notice shall be included in all\r
13  * copies or substantial portions of the Software.\r
14  *\r
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\r
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\r
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
21  *\r
22  * http://www.FreeRTOS.org\r
23  * http://aws.amazon.com/freertos\r
24  *\r
25  * 1 tab == 4 spaces!\r
26  */\r
27 \r
28 /* FreeRTOS.org includes. */\r
29 #include "FreeRTOS.h"\r
30 \r
31 /* Demo application includes. */\r
32 #include "partest.h"\r
33 \r
34 #define LED_2 ( 1UL << 24UL )\r
35 #define LED_3 ( 1UL << 25UL )\r
36 #define LED_4 ( 1UL << 28UL )\r
37 #define LED_5 ( 1UL << 29UL )\r
38 \r
39 #define partstFIO1_BITS                 ( LED_2 | LED_3 | LED_4 | LED_5 )\r
40 #define partstNUM_LEDS                  ( 4 )\r
41 \r
42 static unsigned long ulLEDs[] = { LED_3, LED_2, LED_5, LED_4 };\r
43 \r
44 /*-----------------------------------------------------------\r
45  * Simple parallel port IO routines.\r
46  *-----------------------------------------------------------*/\r
47 \r
48 void vParTestInitialise( void )\r
49 {\r
50         /* LEDs on port 1. */\r
51         LPC_GPIO1->FIODIR  = partstFIO1_BITS;\r
52         \r
53         /* Start will all LEDs off. */\r
54         LPC_GPIO1->FIOCLR = partstFIO1_BITS;\r
55 }\r
56 /*-----------------------------------------------------------*/\r
57 \r
58 void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
59 {\r
60         if( uxLED < partstNUM_LEDS )\r
61         {\r
62                 /* Set of clear the output. */\r
63                 if( xValue )\r
64                 {\r
65                         LPC_GPIO1->FIOCLR = ulLEDs[ uxLED ];\r
66                 }\r
67                 else\r
68                 {\r
69                         LPC_GPIO1->FIOSET = ulLEDs[ uxLED ];\r
70                 }\r
71         }\r
72 }\r
73 /*-----------------------------------------------------------*/\r
74 \r
75 void vParTestToggleLED( unsigned portBASE_TYPE uxLED )\r
76 {\r
77         if( uxLED < partstNUM_LEDS )\r
78         {\r
79                 if( LPC_GPIO1->FIOPIN & ulLEDs[ uxLED ] )\r
80                 {\r
81                         LPC_GPIO1->FIOCLR = ulLEDs[ uxLED ];\r
82                 }\r
83                 else\r
84                 {\r
85                         LPC_GPIO1->FIOSET = ulLEDs[ uxLED ];\r
86                 }\r
87         }\r
88 }\r
89 /*-----------------------------------------------------------*/\r
90 \r
91 unsigned portBASE_TYPE uxParTextGetLED( unsigned portBASE_TYPE uxLED )\r
92 {\r
93         if( uxLED < partstNUM_LEDS )\r
94         {\r
95                 return ( LPC_GPIO1->FIOPIN & ulLEDs[ uxLED ] );\r
96         }\r
97         else\r
98         {\r
99                 return 0;\r
100         }\r
101 }\r
102 /*-----------------------------------------------------------*/\r
103 \r
104 \r
105 \r
106 \r
107 \r
108 \r
109 \r