在数据手册的13章中断系统中,13.4.1中断使能寄存器,介绍USB中断的中断控制位是IE2.7(EUSB),当该位 =1,允许USB中断。还有13.3表格中说明USB中断的矢量地址:FF00CBH,C51中断号:25。
但是,在数据手册27.5 USB范例程序中,UsbInit()初始化程序没用对“EUSB”置位,在中断服务程序“void usb_isr() interrupt 22”中用的中断号是“22”,这里没理解,请大佬解惑。
- void UsbInit()
- {
- P3M0 = 0x00;
- P3M1 = 0x03;
- P_SW2 |= 0x80;
- PLLCR = (1<<7)|(0<<5)|(1<<3)|(1<<1); // enable PLL
- DelayXns(100);
- CLKSEL = 0x02; //选择系统时钟源为内部 pll 输出
- CLKDIV = 0;
- P_SW2 &= ~0x80;
- USBCLK = 0x90;
- USBCON = 0x90;
- WriteReg(FADDR, 0x00);
- WriteReg(POWER, 0x08);
- WriteReg(INTRIN1E, 0x3f);
- WriteReg(INTROUT1E, 0x3f);
- WriteReg(INTRUSBE, 0x00);
- WriteReg(POWER, 0x01);
- Ep0Stage.bStage = EPIDLE;
- }
复制代码
|