轮询与中断

中断控制器

#include"exynos_4412.h"

int main()
{
	/*产生一个中断信号*/
	/*1.属于外设层次,让外部的硬件控制器能产生一个中断信号并发送给中断控制器*/



	/*将GPX1_1设置成中断功能*/
     GPX1.CON = GPX1.CON |( 0xF << 4);
	/*设置GPX1_1中断的触发方式---下降沿触发*/
   EXT_INT41_CON = EXT_INT41_CON & (~(0x7<<4))|(0x2<<4);
	/*使能GPX1_1的中断功能*/
 EXT_INT41_MASK =EXT_INT41_MASK & (~(1<<1));

  /*2.中断控制器层次--让中断控制器接收外设发来的中断信号并对其进行管理然后转发给合适的CPU去处理*/

  ICDDCR = ICDDCR | 1;/*全局使能中断控制器,使其能够接收外部设备产生的中断信号并转发给CPU接口*/
    ICDISER.ICDISER1 = ICDDCR.ICDISER1 | (1 <<25);/*在中断控制器中使能57号中断,使其中断控制器在接收到57号中断后能将其进一步转发到CPU接口*/
	ICDIPIR.ICDIPIR14 = ICDIPIR.ICDIPIR14 & (~ (0xFF<<8)) |(0x01<<8);
	/*选择cpu0来处理57号中断*/

	CPU0.ICCICR = CPU0.ICCICR | 1;
	/*将中断控制器和CPU0之间的接口使能,使得中断控制器转发的信号能够到达CPU0*/

     

	return 0;
}

你可能感兴趣的:(arm开发)