📄 ext_irq.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 : ext_irq.c
// Object : External interrupt handler for irq
// : Use LED5 & LED6 for status interrupt
// 1.0 24/Jun/04 JPP : Creation
// 1.2 29/Aug/05 JPP : Update AIC definion
// ----------------------------------------------------------------------------
// Include Standard LIB files
#include "Project.h"
int status_irq = 0 ;
//*----------------------------------------------------------------------------
//* Function Name : at91_IRQ0_handler
//* Object : Irq Handler called by the IRQ0 interrupt with AT91
//* compatibility
//*----------------------------------------------------------------------------
void at91_IRQ0_handler(void)
{
if (status_irq == 0) status_irq = 1;
else status_irq = 0 ;
//* Read the output state
if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_LED) & AT91B_LED2 ) == AT91B_LED2 )
{
AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED2 );
}
else
{
AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED2 );
}
//* while SW3 is push loop
while ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_SW) & AT91B_SW3 ) != AT91B_SW3 );
}
//*----------------------------------------------------------------------------
//* Function Name : FIQ_init_handler
//* Object : Irq Handler called by the FIQ interrupt with AT91
//* compatibility
///*----------------------------------------------------------------------------
void FIQ_init_handler(void)
{
//* Read the output state
if ( (AT91F_PIO_GetInput(AT91D_BASE_PIO_LED) & AT91B_LED3 ) == AT91B_LED3 )
{
AT91F_PIO_ClearOutput( AT91D_BASE_PIO_LED, AT91B_LED3 );
}
else
{
AT91F_PIO_SetOutput( AT91D_BASE_PIO_LED, AT91B_LED3 );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -