int0.c
来自「S3C4510(ARM7)开发板bootloader实现及板载硬件测试代码」· C语言 代码 · 共 68 行
C
68 行
#include "int0.h"
static void delay(int x)
{
int i;
while (x--)
{
for (i = 65536 ; i > 0; i--);
}
}
void int0_init(void)
{
// set gpio's direction: set IOPMOD register mode bit to 0 = input
IOPMOD = IOPMOD & (~0x00000100);
// unmask the switch interrupt ...........
INTMSK &= ~((1<<21) | (1<<0));
// set int0 interrupt edge detect
IOPCON |= INT0_IO_RISING_EDGE;
// enable int0 interrupt
IOPCON |= INT0_IO_ENABLE;
}
void int0_irq_handler( void)
{
int i;
for (i = 0; i < LED_NUM; i++)
{
led(i, 1);
}
delay( 50 );
for (i = 0; i < LED_NUM; i++)
{
led(i, 0);
}
delay( 50 );
INTPND |= INT0_MASK;
}
void int0demo(void)
{
int i;
uart_get = -INT_MAX;
int0_init();
uart_init(UART0_BASE, BAUD_19200);
puts("press int0 button(target) to generate int0 irq, press 'Enter' to end demo\r\n");
for (; ;)
{
for (i = 0; i < 3; i++)
{
led(i, 1);
delay( 30 );
led(i, 0);
}
if (uart_get == '\r' || uart_get == '\n')
break;
}
return;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?