void int0_init(void)
{
if(rEINTPEND == (1<<11)) //rEINTPEND 中断挂起
{
uart_printf("EINT1 interrupt occurred.\n");
rEINTPEND = (1<<11);
if(g_nKeyPress < 20)
g_nKeyPress +=1;
else
g_nKeyPress = 0;
}
}
这个程序先判了if(rEINTPEND == (1<<11)),为何后面还要赋值呢??rEINTPEND = (1<<11);
如果不错的话应该是写1清中断指示位吧,等待下次的中断发生
一般的情况下都要这么做的
看看datasheet吧。每个芯片有点不太一样的。
清中断,保证下一个相同的中断能被正确响应,否则下一个中断不会被响应。
问个笨问题。中断是S3C2410管,还是其他什么芯片管?我刚来做电子这块
我只有1,2,5,6,8,16章的S3C2410的文档,没有介绍中断这些东西的。我恨。。。
我只有1,2,5,6,8,16章的S3C2410的文档,没有介绍中断这些东西的。我恨。。。
————————————————————————————————————————————
怎么可能?Google一把出来。
莫非你还留恋看中文?放手吧。哈哈,没有办法的,谁叫咱技术落后呢。
谢谢gooogleman,找到了。我一直是用Baidu的.哈哈