mirror of
				https://github.com/FreeRTOS/FreeRTOS-Kernel.git
				synced 2025-11-03 18:22:45 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			149 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			149 lines
		
	
	
	
		
			5.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
    FreeRTOS V8.0.1 - Copyright (C) 2014 Real Time Engineers Ltd. 
 | 
						|
    All rights reserved
 | 
						|
 | 
						|
    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.
 | 
						|
 | 
						|
    ***************************************************************************
 | 
						|
     *                                                                       *
 | 
						|
     *    FreeRTOS provides completely free yet professionally developed,    *
 | 
						|
     *    robust, strictly quality controlled, supported, and cross          *
 | 
						|
     *    platform software that has become a de facto standard.             *
 | 
						|
     *                                                                       *
 | 
						|
     *    Help yourself get started quickly and support the FreeRTOS         *
 | 
						|
     *    project by purchasing a FreeRTOS tutorial book, reference          *
 | 
						|
     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *
 | 
						|
     *                                                                       *
 | 
						|
     *    Thank you!                                                         *
 | 
						|
     *                                                                       *
 | 
						|
    ***************************************************************************
 | 
						|
 | 
						|
    This file is part of the FreeRTOS distribution.
 | 
						|
 | 
						|
    FreeRTOS is free software; you can redistribute it and/or modify it under
 | 
						|
    the terms of the GNU General Public License (version 2) as published by the
 | 
						|
    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.
 | 
						|
 | 
						|
    >>!   NOTE: The modification to the GPL is included to allow you to     !<<
 | 
						|
    >>!   distribute a combined work that includes FreeRTOS without being   !<<
 | 
						|
    >>!   obliged to provide the source code for proprietary components     !<<
 | 
						|
    >>!   outside of the FreeRTOS kernel.                                   !<<
 | 
						|
 | 
						|
    FreeRTOS 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.  Full license text is available from the following
 | 
						|
    link: http://www.freertos.org/a00114.html
 | 
						|
 | 
						|
    1 tab == 4 spaces!
 | 
						|
 | 
						|
    ***************************************************************************
 | 
						|
     *                                                                       *
 | 
						|
     *    Having a problem?  Start by reading the FAQ "My application does   *
 | 
						|
     *    not run, what could be wrong?"                                     *
 | 
						|
     *                                                                       *
 | 
						|
     *    http://www.FreeRTOS.org/FAQHelp.html                               *
 | 
						|
     *                                                                       *
 | 
						|
    ***************************************************************************
 | 
						|
 | 
						|
    http://www.FreeRTOS.org - Documentation, books, training, latest versions,
 | 
						|
    license and Real Time Engineers Ltd. contact details.
 | 
						|
 | 
						|
    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,
 | 
						|
    including FreeRTOS+Trace - an indispensable productivity tool, a DOS
 | 
						|
    compatible FAT file system, and our tiny thread aware UDP/IP stack.
 | 
						|
 | 
						|
    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High
 | 
						|
    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS
 | 
						|
    licenses offer ticketed support, indemnification and middleware.
 | 
						|
 | 
						|
    http://www.SafeRTOS.com - High Integrity Systems also provide a safety
 | 
						|
    engineered and independently SIL3 certified version for use in safety and
 | 
						|
    mission critical applications that require provable dependability.
 | 
						|
 | 
						|
    1 tab == 4 spaces!
 | 
						|
*/
 | 
						|
 | 
						|
/*-----------------------------------------------------------
 | 
						|
 * Simple parallel port IO routines.
 | 
						|
 *-----------------------------------------------------------*/
 | 
						|
 | 
						|
/* FreeRTOS.org includes. */
 | 
						|
#include "FreeRTOS.h"
 | 
						|
#include "task.h"
 | 
						|
#include "partest.h"
 | 
						|
 | 
						|
/* Library includes. */
 | 
						|
#include "stm32f10x_lib.h"
 | 
						|
 | 
						|
#define partstMAX_OUTPUT_LED	( 4 )
 | 
						|
#define partstFIRST_LED			GPIO_Pin_6
 | 
						|
 | 
						|
static unsigned short usOutputValue = 0;
 | 
						|
 | 
						|
/*-----------------------------------------------------------*/
 | 
						|
 | 
						|
void vParTestInitialise( void )
 | 
						|
{
 | 
						|
GPIO_InitTypeDef GPIO_InitStructure;
 | 
						|
 | 
						|
	/* Configure PC.06, PC.07, PC.08 and PC.09 as output push-pull */
 | 
						|
	GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_6 | GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9;
 | 
						|
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
 | 
						|
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
 | 
						|
	GPIO_Init( GPIOC, &GPIO_InitStructure );
 | 
						|
}
 | 
						|
/*-----------------------------------------------------------*/
 | 
						|
 | 
						|
void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
 | 
						|
{
 | 
						|
unsigned short usBit;
 | 
						|
 | 
						|
	vTaskSuspendAll();
 | 
						|
	{
 | 
						|
		if( uxLED < partstMAX_OUTPUT_LED )
 | 
						|
		{
 | 
						|
			usBit = partstFIRST_LED << uxLED;
 | 
						|
 | 
						|
			if( xValue == pdFALSE )
 | 
						|
			{
 | 
						|
				usBit ^= ( unsigned short ) 0xffff;
 | 
						|
				usOutputValue &= usBit;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				usOutputValue |= usBit;
 | 
						|
			}
 | 
						|
 | 
						|
			GPIO_Write( GPIOC, usOutputValue );
 | 
						|
		}	
 | 
						|
	}
 | 
						|
	xTaskResumeAll();
 | 
						|
}
 | 
						|
/*-----------------------------------------------------------*/
 | 
						|
 | 
						|
void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
 | 
						|
{
 | 
						|
unsigned short usBit;
 | 
						|
 | 
						|
	vTaskSuspendAll();
 | 
						|
	{
 | 
						|
		if( uxLED < partstMAX_OUTPUT_LED )
 | 
						|
		{
 | 
						|
			usBit = partstFIRST_LED << uxLED;
 | 
						|
 | 
						|
			if( usOutputValue & usBit )
 | 
						|
			{
 | 
						|
				usOutputValue &= ~usBit;
 | 
						|
			}
 | 
						|
			else
 | 
						|
			{
 | 
						|
				usOutputValue |= usBit;
 | 
						|
			}
 | 
						|
 | 
						|
			GPIO_Write( GPIOC, usOutputValue );
 | 
						|
		}
 | 
						|
	}
 | 
						|
	xTaskResumeAll();
 | 
						|
}
 | 
						|
/*-----------------------------------------------------------*/
 | 
						|
 |