📄 ext_irq.c
字号:
//*----------------------------------------------------------------------------
//* ATMEL Microcontroller Software Support - ROUSSET -
//*----------------------------------------------------------------------------
//* The software is delivered "AS IS" without warranty or condition of any
//* kind, either express, implied or statutory. This includes without
//* limitation any warranty or condition with respect to merchantability or
//* fitness for any particular purpose, or against the infringements of
//* intellectual property rights of others.
//*----------------------------------------------------------------------------
//* File Name : ext_irq.c
//* Object : External interrupt handler for irq this file must be
//* compiled in ARM mode (32 bits)
//* : Use LED5 & LED6 for status interrupt
//* 1.0 10/01/02 JPP : Creation
//*----------------------------------------------------------------------------
#include "parts/r40008/lib_r40008.h"
#include "targets/eb40a/eb40a.h"
// only for check this variable on debugger
extern int count_timer0_interrupt;
extern int count_timer1_interrupt;
int status_irq = TRUE ;
//*----------------------------------------------------------------------------
//* Function Name : at91_IRQ0_handler
//* Object : Irq Handler called by the IRQ0 interrupt with AT91
//* compatibility
//* Input Parameters : none
//* Output Parameters : none
//* Functions called : at91_pio_read, at91_pio_write
//*----------------------------------------------------------------------------
void at91_IRQ0_handler(void)
{
if (status_irq == 0) status_irq = 1;
else status_irq = 0 ;
//* read the ouput state
if ( (at91_pio_read ( &PIO_DESC) & LED5 ) == LED5 )
{
at91_pio_write ( &PIO_DESC, LED5, PIO_CLEAR_OUT );
}
else
{
at91_pio_write ( &PIO_DESC, LED5, PIO_SET_OUT );
}
}
//*----------------------------------------------------------------------------
//* Function Name : FIQ_handler
//* Object : Irq Handler called by the FIQ interrupt with AT91
//* compatibility
//* Input Parameters : none
//* Output Parameters : none
//* Functions called : at91_pio_read, at91_pio_write
//*----------------------------------------------------------------------------
void FIQ_handler(void)
{
if (status_irq == 0) status_irq = 1;
else status_irq = 0;
//* read the ouput state
if ( (at91_pio_read ( &PIO_DESC) & LED6 ) == LED6 )
{
at91_pio_write ( &PIO_DESC, LED6, PIO_CLEAR_OUT );
}
else
{
at91_pio_write ( &PIO_DESC, LED6, PIO_SET_OUT );
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -