You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
FreeRTOS-Kernel/Demo/MB91460_Softune/SRC/partest/partest.c

118 lines
2.5 KiB
C

/* THIS SAMPLE CODE IS PROVIDED AS IS AND IS SUBJECT TO ALTERATIONS. FUJITSU */
/* MICROELECTRONICS ACCEPTS NO RESPONSIBILITY OR LIABILITY FOR ANY ERRORS OR */
/* ELIGIBILITY FOR ANY PURPOSES. */
/* (C) Fujitsu Microelectronics Europe GmbH */
/*------------------------------------------------------------------------
MAIN.C
- description
- See README.TXT for project description and disclaimer.
-------------------------------------------------------------------------*/
/*************************@INCLUDE_START************************/
/* TODO: Add comment here regarding the behaviour of the demo. */
/* Hardware specific includes. */
#include "mb91467d.h"
/* Scheduler includes. */
#include "FreeRTOS.h"
static unsigned portSHORT sState[ ledNUMBER_OF_LEDS ] = { pdFALSE };
static unsigned portSHORT sState1[ ledNUMBER_OF_LEDS ] = { pdFALSE };
/*-----------------------------------------------------------*/
static void vPartestInitialise( void )
{
DDR16=0xFF;
DDR25=0xFF;
}
/*-----------------------------------------------------------*/
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
{
if (uxLED < ledNUMBER_OF_LEDS)
{
vTaskSuspendAll();
/* Toggle the state of the single genuine on board LED. */
if( sState[uxLED])
{
PDR25 |= (1 << uxLED);
}
else
{
PDR25 &= ~(1 << uxLED);
}
sState[uxLED] = !(sState[uxLED]);
xTaskResumeAll();
}
else
{
uxLED -= ledNUMBER_OF_LEDS;
vTaskSuspendAll();
/* Toggle the state of the single genuine on board LED. */
if( sState1[uxLED])
{
PDR16 |= (1 << uxLED);
}
else
{
PDR16 &= ~(1 << uxLED);
}
sState1[uxLED] = !(sState1[uxLED]);
xTaskResumeAll();
}
}
/*-----------------------------------------------------------*/
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
{
/* Set or clear the output [in this case show or hide the '*' character. */
if( uxLED < ledNUMBER_OF_LEDS )
{
vTaskSuspendAll();
{
if( xValue )
{
PDR25 |= (1 << uxLED);
sState[uxLED] = 1;
}
else
{
PDR25 &= ~(1 << uxLED);
sState[uxLED] = 0;
}
}
xTaskResumeAll();
}
else
{
uxLED -= ledNUMBER_OF_LEDS;
vTaskSuspendAll();
{
if( xValue )
{
PDR16 |= (1 << uxLED);
sState1[uxLED] = 1;
}
else
{
PDR16 &= ~(1 << uxLED);
sState1[uxLED] = 0;
}
}
xTaskResumeAll();
}
}
/*-----------------------------------------------------------*/