📄 int0.c
字号:
#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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -