📄 led.c
字号:
/*-----------------------------------------------------------------------------
* ATMEL Microcontroller Software Support - ROUSSET -
*-----------------------------------------------------------------------------
* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*----------------------------------------------------------------------------
* File Name : Led.c
* Object :
* Creation : JPP 04/Sep/2006
*----------------------------------------------------------------------------
*/
#include "project.h"
//*----------------------------------------------------------------------------
//* \fn AT91F_PIO_Wait_input
//* \brief Wait end push
//*----------------------------------------------------------------------------
void AT91F_PIO_Wait_input (unsigned int pio)
{
//* while pio is push wait
while ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & pio ) != pio );
}
//*----------------------------------------------------------------------------
//* \fn AT91F_PIO_Init
//* \brief
//*----------------------------------------------------------------------------
void AT91F_PIO_Init (void)
{
// First, enable the clock of the PIO
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91D_ID_PIO_LED ) ;
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91D_ID_PIO_SW ) ;
AT91F_PIO_CfgInput(AT91D_BASE_PIO_SW,AT91B_BP_MASK);
// then, we configure the PIO Lines corresponding to LED1 to LED2 to be
// outputs. No need to set these pins to be driven by the PIO because it is
// GPIO pins only.
AT91F_PIO_CfgOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
// Clear the LED's. On the board we must apply a "1" to turn off LEDs
AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
// Clear the LED's. On the board we must apply a "0" to turn on LEDs
AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED_MASK ) ;
}
//*----------------------------------------------------------------------------
//* Function Name : aic_software_interrupt
//* Object : Software interrupt function
//*----------------------------------------------------------------------------
void AT91F_PIO_InvertLed ( unsigned int Led)
{
//* Read the output state
if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_LED) & Led ) == Led )
{
AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, Led );
}
else
{
AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, Led );
}
}
//*--------------------------------------------------------------------------------------
//* Function Name : AT91F_PIO_Wait
//* Object : Software waiting loop
//*--------------------------------------------------------------------------------------
void AT91F_PIO_Wait ( unsigned int LedSpeed )
{//* Begin
volatile unsigned int waiting_time ;
for(waiting_time = 0; waiting_time < LedSpeed; waiting_time++) ;
}//* End
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -