From: richardbarry Date: Sun, 17 Feb 2008 20:06:24 +0000 (+0000) Subject: git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@208 1d2547de-c912-0410... X-Git-Tag: V4.7.2~8 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1f10d8f0590ff7091cbd7972821e61cfca9122d6;p=freertos git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@208 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- diff --git a/Demo/MB91460_Softune/SRC/partest/partest.c b/Demo/MB91460_Softune/SRC/partest/partest.c new file mode 100644 index 000000000..fbbb48435 --- /dev/null +++ b/Demo/MB91460_Softune/SRC/partest/partest.c @@ -0,0 +1,153 @@ +/* + FreeRTOS.org V4.7.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. + + *************************************************************************** + + 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. + + *************************************************************************** +*/ + + +/* Scheduler includes. */ +#include "FreeRTOS.h" +#include "task.h" + +#define partstNUM_LEDs 8 + +static unsigned portCHAR sState[ partstNUM_LEDs ] = { pdFALSE }; +static unsigned portCHAR sState1[ partstNUM_LEDs ] = { pdFALSE }; + + +/*-----------------------------------------------------------*/ +void vParTestInitialise( void ) +{ + /* Set port for LED outputs. */ + DDR16 = 0xFF; + DDR25 = 0xFF; + + /* Start with LEDs off. */ + PDR25 = 0x00; + PDR16 = 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(); + } + else + { + uxLED -= partstNUM_LEDs; + + if( uxLED < partstNUM_LEDs ) + { + taskENTER_CRITICAL(); + { + /* Toggle the state of the single genuine on board LED. */ + if( sState1[uxLED]) + { + PDR16 |= ( 1 << uxLED ); + } + else + { + PDR16 &= ~( 1 << uxLED ); + } + + sState1[ uxLED ] = !( sState1[ 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(); + } + else + { + uxLED -= partstNUM_LEDs; + + taskENTER_CRITICAL(); + { + if( xValue ) + { + PDR16 |= ( 1 << uxLED ); + sState1[ uxLED ] = 1; + } + else + { + PDR16 &= ~( 1 << uxLED ); + sState1[ uxLED ] = 0; + } + } + taskEXIT_CRITICAL(); + } +} +