/* FreeRTOS.org V4.6.0 - Copyright (C) 2003-2007 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. *************************************************************************** See http://www.FreeRTOS.org for documentation, latest information, license and contact details. Please ensure to read the configuration and relevant port sections of the online documentation. Also see http://www.SafeRTOS.com for an IEC 61508 compliant version along with commercial development and support options. *************************************************************************** */ /*----------------------------------------------------------- * Simple parallel port IO routines for the LED's. *-----------------------------------------------------------*/ /* Scheduler includes. */ #include "FreeRTOS.h" /* Demo application includes. */ #include "partest.h" /* Board specific defines. */ #define partstFIRST_IO ( ( unsigned portLONG ) 0x10000 ) #define partstNUM_LEDS ( 8 ) /*-----------------------------------------------------------*/ void vParTestInitialise( void ) { /* The ports are setup within prvInitialiseHardware(), called by main(). */ } /*-----------------------------------------------------------*/ void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue ) { unsigned portLONG ulLED = partstFIRST_IO; if( uxLED < partstNUM_LEDS ) { /* Rotate to the wanted bit of port 1. Only P16 to P23 have an LED attached. */ ulLED <<= ( unsigned portLONG ) uxLED; /* Set or clear the output. */ if( xValue ) { IO1SET = ulLED; } else { IO1CLR = ulLED; } } } /*-----------------------------------------------------------*/ void vParTestToggleLED( unsigned portBASE_TYPE uxLED ) { unsigned portLONG ulLED = partstFIRST_IO, ulCurrentState; if( uxLED < partstNUM_LEDS ) { /* Rotate to the wanted bit of port 1. Only P10 to P13 have an LED attached. */ ulLED <<= ( unsigned portLONG ) uxLED; /* If this bit is already set, clear it, and visa versa. */ ulCurrentState = IO1PIN; if( ulCurrentState & ulLED ) { IO1CLR = ulLED; } else { IO1SET = ulLED; } } }