智能车制作
标题:
中断计数问题
[打印本页]
作者:
螃蟹姠偂℡
时间:
2013-6-20 18:58
标题:
中断计数问题
程序一直在TIM中断中不能跳出,而且如果注释掉TIM中断的话,程序又会一直处于输入捕捉中,不能正常进行PIT中断。中断初始化如下
void PIT_init() {
PITCFLMT=0X00; // 禁用PIT模块
PITCE|=0X01; // 定时器0通道使能位置1
PITMUX_PMUX0=0; // 连接微定时器0与定时器0
PITFLT|=0X01; // 定时器0强制装载位置1
PITMTLD0=31; // 微定时器0装载寄存器 32
PITLD0=9999; // 定时器0装载寄存器 10000
// 32*10000/64000000=0.005s
PITINTE|=0X01; // 允许定时器0中断使能
PITTF|=0X01; // 定时器0中断标志位清零
PITCFLMT=0X80; // 使能PIT模块
}
/***************************************/
void TIM_init()
{
TIOS=0x00;
TSCR1=0x80;
TCTL4=0x88;
TIE=0x0A;
TFLG1=0x0ff;
}
复制代码
中断部分如下
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 66 PIT0_ISR(void)
{
PACTL_PAEN=0; // 输入脉冲计数禁止
PACNT=0X0000; // 脉冲数据寄存器清零
PACTL_PAEN=1; // 输入计数允许
PITTF_PTF0=1; //清中断标志位
//PIT_CNT++;
Angle_Process();
SetCarDTY();
SetMotorvoltage(nleft,nright);
/*if(PIT_CNT==1)
{
}
else if(PIT_CNT==2)
else if(PIT_CNT==3)
else if(PIT_CNT==4)
else if(PIT_CNT==5)
{
speed_Control();
speed_out();
}
else if(PIT_CNT==1)
{
PIT_CNT=0;
} */
}
void interrupt 9 TIM1(void)
{
TFLG1_C1F=1;
i_1++;
float_change_char(temp_buf,100);
sci_transmit(temp_buf,10);
}
void interrupt 11 TIM3(void)
{
TFLG1_C3F=1;
i_2++;
float_change_char(temp_buf,101);
sci_transmit(temp_buf,10);
}
#pragma CODE_SEG DEFUALT
复制代码
作者:
螃蟹姠偂℡
时间:
2013-7-1 03:59
自顶
欢迎光临 智能车制作 (http://dns.znczz.com/)
Powered by Discuz! X3.2