From 1cb947e3e3b1ea29d9c4bb4b0cc748624027356c Mon Sep 17 00:00:00 2001 From: RichardBarry Date: Thu, 29 Jan 2009 14:46:41 +0000 Subject: [PATCH] Add LED output routine for the JJ3 target board. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@634 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- .../ParTest/ParTest_Generic_Target_Board.c | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c diff --git a/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c b/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c new file mode 100644 index 000000000..a91041862 --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest_Generic_Target_Board.c @@ -0,0 +1,123 @@ +/* + FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry. + + This file is part of the FreeRTOS.org distribution. + + FreeRTOS.org is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + FreeRTOS.org is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with FreeRTOS.org; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + A special exception to the GPL can be applied should you wish to distribute + a combined work that includes FreeRTOS.org, without being obliged to provide + the source code for any proprietary components. See the licensing section + of http://www.FreeRTOS.org for full details of how and when the exception + can be applied. + + *************************************************************************** + *************************************************************************** + * * + * SAVE TIME AND MONEY! We can port FreeRTOS.org to your own hardware, * + * and even write all or part of your application on your behalf. * + * See http://www.OpenRTOS.com for details of the services we provide to * + * expedite your project. * + * * + *************************************************************************** + *************************************************************************** + + Please ensure to read the configuration and relevant port sections of the + online documentation. + + http://www.FreeRTOS.org - Documentation, latest information, license and + contact details. + + http://www.SafeRTOS.com - A version that is certified for use in safety + critical systems. + + http://www.OpenRTOS.com - Commercial support, development, porting, + licensing and training services. +*/ + +/*----------------------------------------------------------- + * Simple parallel port IO routines. + *-----------------------------------------------------------*/ + +/* FreeRTOS includes. */ +#include "FreeRTOS.h" +#include "task.h" + +/* Demo includes. */ +#include "partest.h" + +#define partstNUM_LEDs 4 + +#define LED0_MASK ( ( unsigned short ) 0x04 ) +#define LED1_MASK ( ( unsigned short ) 0x08 ) + +static const unsigned short xLEDs[ partstNUM_LEDs ] = { LED0_MASK, LED1_MASK }; + +/*-----------------------------------------------------------*/ + +void vParTestInitialise( void ) +{ + /* LED Port Initialization */ + PMCM = PM3 &= ~( LED0_MASK | LED1_MASK ); +} +/*-----------------------------------------------------------*/ + +void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue ) +{ +unsigned portBASE_TYPE uxLEDMask; + + if( uxLED < partstNUM_LEDs ) + { + uxLEDMask = xLEDs[ uxLED ]; + + taskENTER_CRITICAL(); + { + if( xValue ) + { + PMCM |= uxLEDMask; + } + else + { + PMCM &= ~uxLEDMask; + } + } + taskEXIT_CRITICAL(); + } +} +/*-----------------------------------------------------------*/ + +void vParTestToggleLED( unsigned portBASE_TYPE uxLED ) +{ +unsigned portBASE_TYPE uxLEDMask; + + if( uxLED < partstNUM_LEDs ) + { + uxLEDMask = xLEDs[ uxLED ]; + + taskENTER_CRITICAL(); + { + if( PMCM & uxLEDMask ) + { + PMCM &= ~uxLEDMask; + } + else + { + PMCM |= uxLEDMask; + } + } + taskEXIT_CRITICAL(); + } +} + -- 2.39.5