原创 sep4020一个中断测试程序(ADS环境下)

2009-12-17 20:36 3153 7 7 分类: MCU/ 嵌入式

闲来无事,搭建一个外部中断的验证性小实验和大家分享下:


首先先看看我搭建的电路图:


94016e75-121a-4651-96c1-bf03c0048f6a.gif


用画图工具画的,比较简陋,见谅啊 ^_^


接下来送上我的ADS调试小程序:


#include<stdio.h>


#include "sep4020.h"           


#include "intc.h"


<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 


void INTInit(void)


{


       mask_irq(INTSRC_EXINT0);      //屏蔽外部中断0          


       *(RP)GPIO_PORTA_SEL |=0x01;        //A0端口设置为通用模式   


       *(RP)GPIO_PORTA_DIR |=0x01;              //A0输入


       *(RP)GPIO_PORTA_INCTL |=0x01;   //A0为外部中断0输入


       *(RP)GPIO_PORTA_INTRCTL &=0xfffffffc;    //设置为上升沿触发


       *(RP)GPIO_PORTA_INTRCLR |=0x01;             //清中断


       irq_enable(INTSRC_EXINT0);     //中断使能


       unmask_irq(INTSRC_EXINT0);          //开屏蔽中断


}


 


void EX0_IRQ_SERVERS(void)                 //中断服务子程序


{


       printf("testing EXINT0!\n");


       *(RP)GPIO_PORTB_DATA |=0x01;     //B0口输出高电平


       *(RP)GPIO_PORTA_INTRCLR |=0x01;      //清中断


}


int main(void)


{


       *(RP)GPIO_PORTB_SEL |=0x01;


       *(RP)GPIO_PORTB_DIR &=(~0x01);


       *(RP)GPIO_PORTB_DATA &=(~0x01);


       INTInit();


       while(1);


       return 0;


}


 


值得注意的是:


int_vec_handler.c程序里面修改如下:


fc5c01c8-be10-4816-be3a-177d64806ccb.gif


运行出来的效果如下:


f30a437f-0809-4d71-b8fe-620c590eebf7.gif

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /3 下一条