金牌会员
- 积分
- 1321
- 威望
- 742
- 贡献
- 383
- 兑换币
- 115
- 注册时间
- 2009-2-19
- 在线时间
- 98 小时
|
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
定时器跑不起来,有没有高手解决一下? |
|