#include "FreeRTOS.h"\r
#include "task.h"\r
\r
+/* Hardware includes. */\r
+#include <XMC1300.h>\r
+\r
/* Standard demo include. */\r
#include "partest.h"\r
\r
+/* The port bits on which LEDs are connected. */\r
+static const unsigned long ulLEDBits[] = \r
+{ \r
+ 1UL << 0, /* P0.0 */\r
+ 1UL << 2, /* P0.2 */\r
+ 1UL << 5, /* P0.5 */\r
+ 1UL << 6, /* P0.6 */\r
+ 1UL << 7 /* P0.7 */\r
+};\r
+\r
+#define partstNUM_LEDS ( sizeof( ulLEDBits ) / sizeof( unsigned long ) )\r
+\r
+/* Shift the LED bit into the correct position within the POW register to\r
+perform the desired operation. */\r
+#define partstON_SHIFT ( 16UL )\r
+#define partstOFF_SHIFT ( 0UL )\r
+\r
/*-----------------------------------------------------------*/\r
\r
void vParTestInitialise( void )\r
{\r
+ /* Configure relevant port P0 to push pull output to drive LEDs. */\r
+ \r
+ /* P0.0 */\r
+ PORT0->IOCR0 &= ~( ( 0xFFUL << 0 ) );\r
+ PORT0->IOCR0 |= ( 0x80UL << 0 );\r
+\r
+ /* P0.2 */\r
+ PORT0->IOCR0 &= ~( ( 0xFFUL << 16 ) );\r
+ PORT0->IOCR0 |= ( 0x80UL << 16 );\r
+\r
+ /* P0.5 */\r
+ PORT0->IOCR4 &= ~( ( 0xFFUL << 8 ) );\r
+ PORT0->IOCR4 |= ( 0x80UL << 8 );\r
+\r
+ /* P0.6 */\r
+ PORT0->IOCR4 &= ~( ( 0xFFUL << 16 ) );\r
+ PORT0->IOCR4 |= ( 0x80UL << 16 );\r
+\r
+ /* P0.7 */\r
+ PORT0->IOCR4 &= ~( ( 0xFFUL << 24 ) );\r
+ PORT0->IOCR4 |= ( 0x80UL << 24 );\r
}\r
/*-----------------------------------------------------------*/\r
\r
void vParTestSetLED( unsigned long ulLED, signed portBASE_TYPE xValue )\r
{\r
+ if( ulLED < partstNUM_LEDS )\r
+ {\r
+ if( xValue == pdTRUE )\r
+ {\r
+ /* Turn the LED on. */\r
+ PORT0->OMR = ( ulLEDBits[ ulLED ] << partstON_SHIFT );\r
+ }\r
+ else\r
+ {\r
+ /* Turn the LED off. */\r
+ PORT0->OMR = ( ulLEDBits[ ulLED ] << partstOFF_SHIFT );\r
+ }\r
+ }\r
}\r
/*-----------------------------------------------------------*/\r
\r
void vParTestToggleLED( unsigned long ulLED )\r
{\r
+ if( ulLED < partstNUM_LEDS )\r
+ {\r
+ /* Setting both the ON and OFF bits simultaneously results in the bit\r
+ being toggled. */\r
+ PORT0->OMR = ( ulLEDBits[ ulLED ] << partstON_SHIFT ) | ( ulLEDBits[ ulLED ] << partstOFF_SHIFT );\r
+ }\r
}\r
/*-----------------------------------------------------------*/\r
\r