|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請(qǐng)大俠看下這個(gè)arm程序。外部中斷為什么在硬件上沒(méi)反應(yīng)?? |
| 作者:bosszc 欄目:ARM技術(shù) |
請(qǐng)教大俠看下這個(gè)程序什么地方出了問(wèn)題。 我用的是LPC2142.html">LPC2142實(shí)驗(yàn)板。cpu是LPC2142,原程序來(lái)自周立功的書(shū),用于lpc2105之類(lèi)的片子的外部中斷0的。我把原程序修改后想用于外部中斷1做一個(gè)外部中斷實(shí)驗(yàn),用ADS1.2編譯通過(guò)了,但是按p0.14腳的按鍵沒(méi)任何反映,正常情況因該是每按一次鍵,p0.16腳的LED亮滅改變一次。程序修改過(guò)很多次了,還是通不過(guò)。。。 請(qǐng)大俠指點(diǎn)一下。程序如下: /****************************************COPYRIGHT (c)************************************************** ** Guangzou ZLG-MCU Development Co.,LTD. ** graduate school ** http://www.zlgmcu.com ** **--------------File Info------------------------------------------------------------------------------- ** File NAME: main.c ** Last MODIFIED Date: 2004-09-16 ** Last Version: 1.0 ** Descriptions: The main() function example template ** **------------------------------------------------------------------------------------------------------ ** Created by: Chenmingji ** Created date: 2004-09-16 ** Version: 1.0 ** Descriptions: The original version ** **------------------------------------------------------------------------------------------------------ ********************************************************************************************************/ #include "config.h" #define LED1CON (1<<16) //P1.16 IS LED ,P0.14 IS SWITCH void __irq IRQ_Eint1(void) { uint32 i; i=IO1SET; if((i&LED1CON)==0) { IO1SET=LED1CON; } else {IO1CLR=LED1CON; } while((EXTINT&0x02)!=0) { EXTINT=0x02; //clear interrupt flag. } VICVectAddr=0; //vector intrrupt ended. } int main (void) { PINSEL0=0x20000000; //SELECT Px.14 as interrupt 1 input through SWITCH. PINSEL1=0x00000000; //p0.16 OUTPUT // IO0DIR=0xffffbfff; //+++++++ 1:OUTPUT .0:input. IO1DIR=LED1CON; EXTMODE=0x00; //level trigger ,not jumping trigger //int IRQEnable(); VICIntSelect=0x00000000; //0 :IRQ interrupt //VICVectCntl0 = 0x20; // 分配外部中斷0到向量中斷0 //VICVectAddr0 = (uint32)IRQ_Eint1; // 設(shè)置中斷服務(wù)程序地址 VICDefVectAddr=(int)IRQ_Eint1; EXTINT=0x02; //clear interrupt flag. VICIntEnable=0xFFFFFFFF; //enable int1 while(1); return(0); } /********************************************************************************************************* ** End Of File ********************************************************************************************************/ 我肯定硬件沒(méi)問(wèn)題 |
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |