智能车制作

 找回密码
 注册

扫一扫,访问微社区

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

定时器

[复制链接]

0

主题

42

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1321
威望
742
贡献
383
兑换币
115
注册时间
2009-2-19
在线时间
98 小时
跳转到指定楼层
1#
发表于 2009-3-27 15:58:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
int tim0 = 0,timer_num0 = 0,timer_num = 0;
byte stop_sign = 0,power_sign = 0;
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt MDC_USE(void)     //定时器中断函数
{            
  MCCNT = 40;     
  MCFLG = 0x80;   
  tim0++;            
  if(tim0==20000)      
  {     
    tim0=0;
    PORTB_BIT0=~PORTB_BIT0;   
  }  
  
  timer_num0++;
  if(timer_num0==2000)      
     PORTB = 0X80;      
  if(!stop_sign)
  {
    if(timer_num==0)        // OPEN THE photoelectric cell
    {         
        PORTB = 0X40;
    }
    timer_num++;         
    if(timer_num==21)         
    {               
        timer_num=0;
        PORTB = 0X20;
    }
  }
  else
  {                     
   
  }  
}
#pragma CODE_SEG DEFAULT
void MDCInit(void)
{
  MCCTL = MCCTL&0Xfb;
  MCCTL = 0Xe1;         
  MCCTL = MCCTL|0X04;   
  MCCNT = 40;     
  MCCTL = MCCTL|0X08  ;
}

void main(void)
{
  DDRB = 0XFF;
  MDCInit();
  EnableInterrupts;
  for(;;)
  {} /* wait forever */
  /* please make sure that you never leave this funct
定时器跑不起来,有没有高手解决一下?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-12-25 14:32 , Processed in 0.084015 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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