From: richardbarry Date: Thu, 22 Jan 2009 14:44:08 +0000 (+0000) Subject: Add new partest files for the NEC demo. X-Git-Tag: V5.1.2~80 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3d8edc4fbe6e694ef92ac3a65d71694beda034d0;p=freertos Add new partest files for the NEC demo. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@616 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest.c b/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest.c new file mode 100644 index 000000000..5730903ec --- /dev/null +++ b/Demo/NEC_V850ES_Fx3_IAR/ParTest/ParTest.c @@ -0,0 +1,128 @@ +/* + 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. +*/ + +/* + Changes from V2.5.2 + + + All LED's are turned off to start. +*/ + + +#include "FreeRTOS.h" +#include "task.h" +#include "partest.h" + +#define partstNUM_LEDs 4 + +#define LED0_MASK ( ( unsigned short ) 0x08 ) +#define LED1_MASK ( ( unsigned short ) 0x10 ) +#define LED2_MASK ( ( unsigned short ) 0x40 ) +#define LED3_MASK ( ( unsigned short ) 0x80 ) + +static const unsigned short xLEDs[ partstNUM_LEDs ] = { LED0_MASK, LED1_MASK, LED2_MASK, LED3_MASK }; + + +/*----------------------------------------------------------- + * Simple parallel port IO routines. + *-----------------------------------------------------------*/ + +void vParTestInitialise( void ) +{ + /* Set GPIO to output. */ + PM3 &= ~( LED0_MASK | LED1_MASK | LED2_MASK | LED3_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 ) + { + P3 |= uxLEDMask; + } + else + { + P3 &= ~uxLEDMask; + } + } + taskEXIT_CRITICAL(); + } +} +/*-----------------------------------------------------------*/ + +void vParTestToggleLED( unsigned portBASE_TYPE uxLED ) +{ +unsigned portBASE_TYPE uxLEDMask; + + if( uxLED < partstNUM_LEDs ) + { + uxLEDMask = xLEDs[ uxLED ]; + + taskENTER_CRITICAL(); + { + if( P3 & uxLEDMask ) + { + P3 &= ~uxLEDMask; + } + else + { + P3 |= uxLEDMask; + } + } + taskEXIT_CRITICAL(); + } +} +