平台:EasyArm2131+LPC2142Pack
问题:使用2142的TIMER和USB功能,采用中断方式。请大家帮忙看看以下的初始化代码对不对。因为我这么写以后,USB传输的数据不对了。怀疑是中断设得不对,因为单独用USB传数据或者用TIMER的话没问题的。
//USB 初始化程序,USB中断被分配到slot1,优先级为1 void Init_USBInterrupt(void) { VICIntSelect = 0x00000000; // 设置所有中断分配为IRQ中断 VICVectCntl1 = (0x20 | 22); /* USB中断分配到中断向量1 */ VICVectAddr1 = (INT32U)Usb_Exception; /* USB中断服务程序地址 */ VICIntEnable = 1 << 22; /* 使能USB中断 */ }
//TIMER0 初始化程序,Timer0中断被分配到slot0,优先级为0,中断向量号查看上册P109 void Init_Timer0Interrupt(void) { VICIntSelect = 0x00000000; // 设置所有中断分配为IRQ中断 VICVectCntl0 = (0x20 | 4); /* Timer0中断分配到中断向量0 */ VICVectAddr0 = (INT32U)Timer0_ISR; /* Timer0中断服务程序地址 */ VICIntEnable = 1 << 4; /* 使能Timer0中断 */ }
|