智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 811|回复: 0
打印 上一主题 下一主题

[软件类] 怎么才能在TOF中区分不同的中断

[复制链接]

1

主题

1

帖子

0

精华

注册会员

Rank: 2

积分
84
威望
56
贡献
20
兑换币
22
注册时间
2013-10-9
在线时间
5 小时
毕业学校
合肥中学
跳转到指定楼层
1#
发表于 2014-3-9 14:16:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
2贡献
为什么C0F和C0F总是运行,不是应该有个时间差么?难道要单独开TC0和TC1的中断么?
#pragma CODE_SEG __NEAR_SEG NON_BANKED       //中断函数置于非分页区内
interrupt void overflow(void)
{
  if(TFLG2_TOF ==1)
  {

    if(TFLG1_C0F == 1)  
    {      
    TC0=TCNT+4000;           //读TCNT寄存器,清除TOF标志
    TFLG1_C0F = 1;   
    LED = ~LED;          //LED状态取反,闪烁
    }

   if(TFLG1_C1F == 1)
    {      
    TC1=TCNT+1000;           //读TCNT寄存器,清除TOF标志
    TFLG1_C1F = 1;  
    LED1 = ~LED1;          //LED状态取反,闪烁
    }


    temp=TCNT;
    TFLG1 = 0xff;

  }
}         

#pragma CODE_SEG DEFAULT                     //后续代码置于默认区域内  

/*************************************************************/
/*                          主函数                           */
/*************************************************************/
void main(void) {
  DisableInterrupts;           //禁止所有中断打开
  INIT_PLL();                  //初始化PLL模块,设置busclock=32MHz
  initialize_ect();            //初始化定时器模块
  LED_dir = 1;                 //设置LED口为输出口
  LED1_dir=1;
  LED = 0;                     //初始化LED为亮
  LED1= 0;
  EnableInterrupts;            //允许所有中断打开
  TC0=TCNT+4000;
  TC1=TCNT+1000;
  for(;;) {}
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-23 16:31 , Processed in 0.041758 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表