bonito
驱动牛犊
驱动牛犊
  • 注册日期2004-11-14
  • 最后登录2006-03-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1458回复:6

timer2中断一允许系统就无法识别USB设备了?

楼主#
更多 发布于:2004-11-14 19:03
用的是CY68013,想加入Timer2中断,不允许timer2中断一切都正常,只要一允许系统就说无法识别的USB设备,帮我看一下程序什么地方出问题了!多谢
void TD_Init(void)
{ ...
  /* setup the timer 2 interrupt */
  T2CON=0;//set timer2 at auto-reload mode
  RCAP2L=0x9F;
  RCAP2H=0xFB;//Autoreload counter, about 0.56ms @ 48MHz
  CKCON|=1<<5;//use CLKOUT/12 as source
  TR2 = 1;    /* start timer 2               */
  ET2 = 1;    /* enable timer 2 interrupt一允许就出错    */
}

void timer2 (void) interrupt TMR2_VECT  {  
  EP1INBUF[0] = 0x55;//下面三行去掉,不发送数据就可以了
  EP1INBUF[1] = 0xaa;
  EP1INBC = 2;
  T2CON &= 0x7f;//~(1<<7);
}



[编辑 -  11/15/04 by  bonito]
zhuge36
驱动牛犊
驱动牛犊
  • 注册日期2003-07-18
  • 最后登录2010-10-31
  • 粉丝0
  • 关注0
  • 积分17分
  • 威望31点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-11-15 09:30
在设备加载后再开中断。
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-11-15 12:38
你的中断可能太频繁了,干扰了设备的枚举
按照楼上说得那样,枚举完再开中断
Owen.Guo
驱动中牛
驱动中牛
  • 注册日期2001-03-30
  • 最后登录2012-03-29
  • 粉丝0
  • 关注1
  • 积分402分
  • 威望260点
  • 贡献值0点
  • 好评度26点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-15 20:52
同意楼上的回答
Owen.Guo 祝你成功!
bonito
驱动牛犊
驱动牛犊
  • 注册日期2004-11-14
  • 最后登录2006-03-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-16 15:55
你的中断可能太频繁了,干扰了设备的枚举
按照楼上说得那样,枚举完再开中断
 

多谢大家的指点,我试着把中断允许方在后面,但是发现了一个更怪的问题,不开中断也会出错!
void timer2 (void) interrupt TMR2_VECT  {  
  DWORD  PA1;
  T2CON &=0x7f; //clear timer2 req
  Counter++;
  Counter>>=8;//只要加上这一句,无论是否允许timer2中断,
              //都会出现无法识别USB设备的情况,其实也不是
              //这一句,随便写点别的,只要中断程序一长就出错
}
lyd519a
驱动牛犊
驱动牛犊
  • 注册日期2004-08-25
  • 最后登录2005-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-11-18 11:35
我的也出现同样的问题,
void init_serial(void)
{
SCON = 0X52;
PCON = 0X80 | PCON;
TMOD = 0X21;
// TCON = 0x69;    // TCON
TH1 = 0xFd;   // 9600bps @ 24MHz
//    TR1 = 1;开这个就无法枚举了
    ES = 1;
}
jinghuiren
驱动巨牛
驱动巨牛
  • 注册日期2002-06-01
  • 最后登录2008-10-27
  • 粉丝0
  • 关注0
  • 积分291分
  • 威望460点
  • 贡献值0点
  • 好评度428点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-11-19 12:53
应该不会吧,usb的请求超时时间是50ms呢,是不是68013的一个bug?发mail给cypress的技术支持询问一下,或者到www.cypress.com上的knowledgebase里搜一下是否有相关的问题
游客

返回顶部