swi_handler_user.c

来自「AT91SAM7 SWI, Remap, GPIO, PIT and stdio」· C语言 代码 · 共 48 行

C
48
字号
/* User SWI Handler for SWI's not handled in swi_handler.S */

#include <stdio.h>
#include "Board.h"
#include "dbgu.h"

unsigned long SWI_Handler_User(unsigned long reg0,
	unsigned long reg1,
	unsigned long reg2,
	unsigned long swi_num )
{
	unsigned long res;

	res = 0;
	
	switch (swi_num) {
	case 0x10 :
		// toogle LED2
		if ((AT91F_PIO_GetInput(AT91C_BASE_PIOA) & LED2 ) == LED2 ) {
			AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED2 );
		}
		else {
			AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED2 );
		}
		res = 0xfefefefe;
		break;
	case 0x11 :
#ifdef LED3
		// toogle LED3
		if ((AT91F_PIO_GetInput(AT91C_BASE_PIOA) & LED3 ) == LED3 ) {
			AT91F_PIO_ClearOutput( AT91C_BASE_PIOA, LED3 );
		}
		else {
			AT91F_PIO_SetOutput( AT91C_BASE_PIOA, LED3 );
		}
#endif
		res = 0xdeadbeef;
		break;
	case 0x12 :
		res = reg0 + 1;
		break;
	default :
		break;
	} /* switch */
	
	return res;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?