⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 int0.c

📁 S3C4510(ARM7)开发板bootloader实现及板载硬件测试代码
💻 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 + -