| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
關(guān)于多路中斷應(yīng)用的疑問 | 
  
| 作者:hzq888676 欄目:ARM技術(shù) | 
我在調(diào)試時發(fā)現(xiàn),若同時設(shè)置兩個中斷(UART0 分配為SLOT0 和 TIMER0 分配為 SLOT1)則不能產(chǎn)生中斷,見程序示例。 而將UART或TIMER0分別配置為SLOT0,關(guān)閉SLOT1 則中斷正常,不知是否需要修改LPC2200模板設(shè)置,如何修改。 void __irq IRQ_Timer0(void) { TCounter --; if (TCounter ==0) { FL_overtime = 0x5A; } T0IR = 0x01; VICVectAddr = 0x00; } void __irq IRQ_UART0(void) { if( 0x04==(U0IIR&0x0F)) //若有接收到數(shù)據(jù) { Receive = U0RBR; //取接收到的數(shù)據(jù)==〉recv_data } VICVectAddr = 0x00; // 中斷處理結(jié)束 } void initial(void) { UARTMODE uart0_set; uart0_set.datab = 8; // 8位數(shù)據(jù)位 uart0_set.stopb = 1; // 1位停止位 uart0_set.parity = 0; // 無奇偶校驗 UART0_Ini(115200, uart0_set); // 初始化串口模式 U0FCR = 0x01; // 使能FIFO,并設(shè)置觸發(fā)點為1字節(jié) U0IER = 0x01; // 允許RBR中斷,即接收中斷 T0PR = 0; T0MCR = 0x03; T0MR0 = Fpclk/1000; //1ms定時中斷 T0TCR = 0x01; /* 設(shè)置中斷允許 */ VICIntSelect = 0x00000000; // 設(shè)置所有通道為IRQ中斷 VICVectCntl0 = 0x26; // UART0中斷通道分配到IRQ slot 0,即優(yōu)先級最高 VICVectAddr0 = (int)IRQ_UART0; // 設(shè)置UART0向量地址 VICVectCntl1 = 0x24; // Timer0中斷通道分配到IRQ slot1. VICVectAddr1 = (uint32)IRQ_Timer0; // 設(shè)置Timer0向量地址 VICIntEnable = 0x00000060; // 使能UART0、Timer0中斷 } int main (void) { uint8 TEMP; uint32 uid,uid1; /* uint8 err=0; volatile uint16 *ADR; volatile uint16 *ip; */ uint16 TEMP1; PINSEL0 = 0x00050055; // 定義TXD0、RXD0、SCL、SDA、TXD1、RXD1,其余為通用IO PINSEL1 = 0x000002A9; //設(shè)置EINT0、SCK1、MISO1、MOSI1、SSEL1、其它為GPIO IO0DIR = P0_IOCON; //設(shè)置I/O口輸入/輸出方向 initial(); while(1) { // 等待中斷 } }  | 
  
| 2樓: | >>參與討論 | 
| 作者: hzq888676 于 2005/8/12 23:35:00 發(fā)布:
         找到錯誤啦 我把控制位搞錯了,應(yīng)該是: VICIntEnable = 0x00000050; // 使能UART0、Timer0中斷 測試后,中斷都正常了。  | 
  |
  | 
    
 
  | 
  
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進(jìn)入 | 
Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號  |