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

82 lines
2.0 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************************/
/* Hardware specific includes. */
#include "mb91467d.h"
/* Scheduler includes. */
#include "FreeRTOS.h"
#include "task.h"
#define partstNUM_LEDs 8
static unsigned portSHORT sState[ partstNUM_LEDs ] = { pdFALSE };
/*-----------------------------------------------------------*/
void vParTestInitialise( void )
{
/* Set port for LED outputs. */
DDR16 = 0xFF;
/* Start with LEDs off. */
PDR25 = 0x00;
}
/*-----------------------------------------------------------*/
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
{
if( uxLED < partstNUM_LEDs )
{
taskENTER_CRITICAL();
/* Toggle the state of the single genuine on board LED. */
if( sState[ uxLED ])
{
PDR25 |= ( 1 << uxLED );
}
else
{
PDR25 &= ~( 1 << uxLED );
}
sState[ uxLED ] = !( sState[ uxLED ] );
taskEXIT_CRITICAL();
}
}
/*-----------------------------------------------------------*/
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 < partstNUM_LEDs )
{
taskENTER_CRITICAL();
{
if( xValue )
{
PDR25 |= ( 1 << uxLED );
sState[ uxLED ] = 1;
}
else
{
PDR25 &= ~( 1 << uxLED );
sState[ uxLED ] = 0;
}
}
taskEXIT_CRITICAL();
}
}
/*-----------------------------------------------------------*/