智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

光电PIT中进行分时点亮 附代码

[复制链接]

8

主题

109

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2284

活跃会员奖章优秀会员奖章

QQ
威望
375
贡献
1711
兑换币
6
注册时间
2011-3-17
在线时间
99 小时
跳转到指定楼层
1#
发表于 2011-5-9 16:51:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这是我们的PIT中断 内容 不知道将激光分时点亮 和读取放这样放在中断里有没有问题
第一个激光坏掉了
void Init_PIT(void) {
  
   
   
    PITCFLMT_PITE=0;//关闭PIT计时通道
   
    PITCE_PCE0=1;//定时器通道0使能
   
    PITMTLD0=320-1;   //8位定时器0初值设定,0.1MHz 即0.01ms
   
    PITLD0=PITTIME-1; //16位定时器0初值设定,PITTIME*0.01ms(10us) 这个来看激光管的状态
      
    PITMUX_PMUX0=0;//定时器通道0选用时基0   
   
    PITINTE_PINTE0=1;// 定时器中断通道0中断使能   
   
   //PITTF=0X01;//查询位  置一则表示清零 故可以通过查询是否为一来看是否置位

    PITCFLMT_PITE=1;//使能PIT计时通道
}
               
/**********************END*****************************************/
/**********************END*****************************************/




//函数名称:PIT0(void)
//函数功能:PIT中断函数
//输入参数:无
//输出参数:无
//创作时间:2011年05月01日
/******************************************************/

#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 66 PIT0(void)
{


  laser_count++;
  
  PITTF_PTF0=1;//清中断标志位
  
  if(laser_count==1)
  {
   
      laser_2;//点亮激光
      delay_us(1);
      Current_Flag[1]=PORTB_PB0;
     
  }


  if(laser_count==2)
  {
   
      laser_3;
      delay_us(1);
      Current_Flag[2]=PORTB_PB1;
     
  }
  
    if(laser_count==3)
  {
   
      laser_4;
      delay_us(1);
      Current_Flag[3]=PORTB_PB1;
  }   
  
    if(laser_count==4)
  {
        
      laser_5;
      delay_us(1);
      Current_Flag[4]=PORTB_PB1;
      
  }
   
     if(laser_count==5)
  {
      
      laser_6;
      delay_us(1);
      Current_Flag[5]=PORTB_PB2;
      
  }
   
     if(laser_count==6)
  {
      
      laser_7;
      delay_us(1);
      Current_Flag[6]=PORTB_PB2;
      
  }
   
     if(laser_count==7)
  {
      
      laser_8;
      delay_us(1);
      Current_Flag[7]=PORTB_PB2;
      
  }
   
     if(laser_count==8)
  {
      
      laser_9;
      delay_us(1);
      Current_Flag[8]=PORTB_PB2;
      
  }
  
    if(laser_count==9)
  {
        
      laser_10;
      delay_us(1);
      Current_Flag[9]=PORTB_PB3;
      
  }
  
    if(laser_count==10)
  {
        
      laser_11;
      delay_us(1);
      Current_Flag[10]=PORTB_PB3;
      
  }
  
    if(laser_count==11)
  {
        
      laser_12;
      delay_us(1);
      Current_Flag[11]=PORTB_PB3;
      
  }
  
    if(laser_count==12)
  {
        
      laser_13;
      delay_us(1);
      Current_Flag[12]=PORTB_PB4;
      
  }
  
    if(laser_count==13)
  {
        
      laser_14;
      delay_us(1);
      Current_Flag[13]=PORTB_PB4;
      laser_count=0;
     
  }
  

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

本版积分规则

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

GMT+8, 2024-11-6 11:00 , Processed in 0.123760 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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