/*\r
- FreeRTOS V7.0.0 - Copyright (C) 2011 Real Time Engineers Ltd.\r
+ FreeRTOS V7.0.1 - Copyright (C) 2011 Real Time Engineers Ltd.\r
\r
\r
***************************************************************************\r
\r
void vParTestSetLEDFromISR( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
{\r
- if( uxLED < partstMAX_LEDS )\r
+unsigned portBASE_TYPE uxInterruptFlags;\r
+\r
+ uxInterruptFlags = portSET_INTERRUPT_MASK_FROM_ISR();\r
{\r
- if( xValue == pdTRUE )\r
- {\r
- ulGPIOState &= ~( 1UL << uxLED );\r
- }\r
- else\r
+ if( uxLED < partstMAX_LEDS )\r
{\r
- ulGPIOState |= ( 1UL << uxLED );\r
- }\r
+ if( xValue == pdTRUE )\r
+ {\r
+ ulGPIOState &= ~( 1UL << uxLED );\r
+ }\r
+ else\r
+ {\r
+ ulGPIOState |= ( 1UL << uxLED );\r
+ }\r
\r
- MSS_GPIO_set_outputs( ulGPIOState );\r
+ MSS_GPIO_set_outputs( ulGPIOState );\r
+ }\r
}\r
+ portCLEAR_INTERRUPT_MASK_FROM_ISR( uxInterruptFlags );\r
}\r
/*-----------------------------------------------------------*/\r
\r
}\r
/*-----------------------------------------------------------*/\r
\r
+long lParTestGetLEDState( unsigned long ulLED )\r
+{\r
+long lReturn = pdFALSE;\r
+\r
+ if( ulLED < partstMAX_LEDS )\r
+ {\r
+ taskENTER_CRITICAL();\r
+ {\r
+ if( ( ulGPIOState & ( 1UL << ulLED ) ) == 0UL )\r
+ {\r
+ lReturn = pdTRUE;\r
+ }\r
+ }\r
+ taskEXIT_CRITICAL();\r
+ }\r
+\r
+ return lReturn;\r
+}\r
+/*-----------------------------------------------------------*/\r