- Main Page
- Related Pages
- Data Structures
- Files

# ParTest.c

Go to the documentation of this file.

    00001 /*This file has been prepared for Doxygen automatic documentation generation.*/
    00015 /* Copyright (c) 2009 Atmel Corporation. All rights reserved.
    00016  *
    00017  * Redistribution and use in source and binary forms, with or without
    00018  * modification, are permitted provided that the following conditions are met:
    00019  *
    00020  * 1. Redistributions of source code must retain the above copyright notice, this
    00021  * list of conditions and the following disclaimer.
    00022  *
    00023  * 2. Redistributions in binary form must reproduce the above copyright notice,
    00024  * this list of conditions and the following disclaimer in the documentation
    00025  * and/or other materials provided with the distribution.
    00026  *
    00027  * 3. The name of Atmel may not be used to endorse or promote products derived
    00028  * from this software without specific prior written permission.
    00029  *
    00030  * 4. This software may only be redistributed and used in connection with an Atmel
    00031  * AVR product.
    00032  *
    00033  * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
    00034  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
    00035  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
    00036  * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
    00037  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
    00038  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
    00039  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
    00040  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
    00041  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    00042  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
    00043  *
    00044  */
    00045
    00046 #include <avr32/io.h>
    00047 #include "FreeRTOS.h"
    00048 #include "task.h"
    00049 #include "partest.h"
    00050
    00051
    00052 /*-----------------------------------------------------------
    00053  * Simple parallel port IO routines.
    00054  *-----------------------------------------------------------*/
    00055
    00056 #define partstALL_OUTPUTS_OFF     ( ( unsigned portCHAR ) 0x00 )
    00057 #define partstMAX_OUTPUT_LED      ( ( unsigned portCHAR ) 8 )
    00058
    00059 static volatile unsigned portCHAR ucCurrentOutputValue = partstALL_OUTPUTS_OFF; /*lint !e956 File scope parameters okay here. */
    00060
    00061 /*-----------------------------------------------------------*/
    00062
    00063 void vParTestInitialise( void )
    00064 {
    00065     LED_Display(partstALL_OUTPUTS_OFF); /* Start with all LEDs off. */
    00066 }
    00067 /*-----------------------------------------------------------*/
    00068
    00069 void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )
    00070 {
    00071 unsigned portCHAR ucBit;
    00072
    00073     if( uxLED >= partstMAX_OUTPUT_LED )
    00074     {
    00075         return;
    00076     }
    00077
    00078     ucBit = ( ( unsigned portCHAR ) 1 ) << uxLED;
    00079
    00080     vTaskSuspendAll();
    00081     {
    00082         if( xValue == pdTRUE )
    00083         {
    00084           ucCurrentOutputValue |= ucBit;
    00085         }
    00086         else
    00087         {
    00088           ucCurrentOutputValue &= ~ucBit;
    00089         }
    00090
    00091         LED_Display(ucCurrentOutputValue);
    00092     }
    00093     xTaskResumeAll();
    00094 }
    00095 /*-----------------------------------------------------------*/
    00096
    00097 void vParTestToggleLED( unsigned portBASE_TYPE uxLED )
    00098 {
    00099     unsigned portCHAR ucBit;
    00100
    00101     if( uxLED >= partstMAX_OUTPUT_LED )
    00102     {
    00103         return;
    00104     }
    00105
    00106     ucBit = ( ( unsigned portCHAR ) 1 ) << uxLED;
    00107
    00108     vTaskSuspendAll();
    00109     {
    00110         ucCurrentOutputValue ^= ucBit;
    00111         LED_Display(ucCurrentOutputValue);
    00112     }
    00113     xTaskResumeAll();
    00114 }
    00115