阅读:1175回复:4
D12_ReadChipID
为我们我的每次是先是12 00
unsigned short D12_ReadChipID(void) { unsigned short i; unsigned short j; if(bEPPflags.bits.in_isr == 0) DISABLE; outportb(D12_COMMAND, 0xFD); i=inportb(D12_DATA); j=inportb(D12_DATA); j<<=8; j +=i; if(bEPPflags.bits.in_isr == 0) ENABLE; return j; } ************************************************* void outportb(unsigned int port,unsigned char val) { *((unsigned char *)port)=val;//向D12发送命令或子程序 } unsigned char inportb(unsigned int port) { return * ((unsigned char *)port); } 有时候就是 10 00 总不是12 10?????????????????? |
|
沙发#
发布于:2005-01-14 09:04
有时候 我的中断值是 81 C1,可以肯定是没有清中断,数据叠加起来了,可是我执行了
ep_last = D12_ReadLastTransactionStatus(0); 很明显,有C1是说明1100|0001 就是3次中断,有挂起改变,有总线RESET,还有端点0 OUT,我看资料上说后面两位读取以后就清0的啊,第一位是 用D12_ReadLastTransactionStatus清除相应的位,是不是我的中断函数有问题,我的CHIPID 也是读取 12 00,有时是10 00,每次是在RELOAD 再运行就出现不同的结果. 为什么,大家谁遇到这种情况啊??讨论一哈, [编辑 - 1/14/05 by dxyldl] |
|
板凳#
发布于:2005-01-14 10:11
老大们帮我看看啊
|
|
地板#
发布于:2005-01-14 12:38
顶一哈
|
|
地下室#
发布于:2005-01-17 08:23
:o
|
|