]> begriffs open source - cmsis-freertos/blob - Demo/MSP430X_MSP430F5438_CCS/Demo_Source/ParTest.c
Update README.md - branch main is now the base branch
[cmsis-freertos] / Demo / MSP430X_MSP430F5438_CCS / Demo_Source / ParTest.c
1 /*
2  * FreeRTOS V202111.00
3  * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy of
6  * this software and associated documentation files (the "Software"), to deal in
7  * the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
9  * the Software, and to permit persons to whom the Software is furnished to do so,
10  * subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice shall be included in all
13  * copies or substantial portions of the Software.
14  *
15  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
17  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
19  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21  *
22  * http://www.FreeRTOS.org
23  * http://aws.amazon.com/freertos
24  *
25  * 1 tab == 4 spaces!
26  */
27
28 /*-----------------------------------------------------------
29  * Simple parallel port IO routines to flash LEDs.
30  *-----------------------------------------------------------*/
31
32 /* Kernel includes. */
33 #include "FreeRTOS.h"
34 #include "task.h"
35
36 /* Hardware includes. */
37 #include "msp430.h"
38 #include "hal_MSP-EXP430F5438.h"
39
40 /*-----------------------------------------------------------*/
41
42 void vParTestInitialise( void )
43 {
44         /* The port used by the two LEDs is configured from halBoardInit() so
45         nothing needs to be done here. */
46 }
47 /*-----------------------------------------------------------*/
48
49 void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
50 {
51         /* Only two LEDs are provided on the hardware. */
52         taskENTER_CRITICAL();
53         {
54                 if( xValue != pdFALSE )
55                 {
56                         switch( uxLED )
57                         {
58                                 case 0: LED_PORT_OUT |= LED_1;
59                                                 break;
60         
61                                 case 1: LED_PORT_OUT |= LED_2;
62                                                 break;
63                                                 
64                                 default: /* Nothing to do here, there are only two LEDs. */
65                                                 break;
66                         }
67                 }
68                 else
69                 {
70                         switch( uxLED )
71                         {
72                                 case 0: LED_PORT_OUT &= ~LED_1;
73                                                 break;
74         
75                                 case 1: LED_PORT_OUT &= ~LED_2;
76                                                 break;
77                                 default: /* Nothing to do here, there are only two LEDs. */
78                                                 break;
79                         }
80                 }
81         }
82         taskEXIT_CRITICAL();
83 }
84 /*-----------------------------------------------------------*/
85
86 void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
87 {
88         taskENTER_CRITICAL();
89         {
90                 switch( uxLED )
91                 {
92                         case 0: if( ( LED_PORT_OUT & LED_1 ) == 0 )
93                                         {
94                                                 LED_PORT_OUT |= LED_1;
95                                         }
96                                         else
97                                         {
98                                                 LED_PORT_OUT &= ~LED_1;
99                                         }
100                                         break;
101
102                         case 1: if( ( LED_PORT_OUT & LED_2 ) == 0 )
103                                         {
104                                                 LED_PORT_OUT |= LED_2;
105                                         }
106                                         else
107                                         {
108                                                 LED_PORT_OUT &= ~LED_2;
109                                         }
110                                         break;
111                         default: /* Nothing to do here, there are only two LEDs. */
112                                         break;
113                 }
114         }
115         taskEXIT_CRITICAL();
116 }
117 /*-----------------------------------------------------------*/
118