金牌会员
- 积分
- 2533
- 威望
- 1838
- 贡献
- 511
- 兑换币
- 278
- 注册时间
- 2013-3-17
- 在线时间
- 92 小时
- 毕业学校
- 西安建筑科技大学
|
static void IOC_Init(void)
{
TCNT =0x00;
TSCR1=0x80;//时钟允许
TSCR2=0x04;//div by 16
PACTL=0xc0;//PT7 PIN,PACN32 16BIT,FALLing edge,NOT INTERRUPT
TCTL3=0xc0;//c-输入捕捉7任何沿有效,
TCTL4=0x03;//0表示ICx禁止, 1表示上升沿, 2表示下降沿, 3表示任何沿
TIE =0x00;//每一位对应相应通道中断允许,0表示禁止中断
TIOS =0x00;//每一位对应通道的: 0输入捕捉,1输出比较
TCTL3_EDG7x=1;//c-输入捕捉7任何沿有效,
TCTL4_EDG0x=1;
}
void GetMotorPulse(void) //采集脉冲
{
g_nLeftMotorPulseSigma+=PORTA;
PORTE_PE2=1;
_asm(nop);
_asm(nop);
PORTE_PE2=0;
_asm(nop);
_asm(nop);
g_nRightMotorPulseSigma+=PACNT;
PACNT=0;
}
#pragma CODE_SEG __NEAR_SEG NON_BANKED //1ms中断
void interrupt 66 PIT0_ISR(void)
{
PITTF_PTF0=1; //清中断标志位
PIT_CNT++;
g_nSpeedControlPeriod++;
SpeedControlOutput();
if(PIT_CNT>=6) {
PIT_CNT=0;
GetMotorPulse();
}
else if(PIT_CNT<=4)
{
TSL1401_GetLine();
AD_Erzhihua();
fAD_QIUHE() ;
fAD_QIUJUNZHI();
Drection_Out();
SANG=ANG;
}
else if(PIT_CNT==5) {
g_nSpeedControlCount ++;
if(g_nSpeedControlCount >= SPEED_CONTROL_COUNT)//SPEED_CONTROL_COUNT=20,
{
SpeedControl();
g_nSpeedControlCount = 0;
g_nSpeedControlPeriod = 0;
}
}
else if(PIT_CNT==6)
{
if(SANG>=ANG_center-10) {
Fangxiang_Out();
}
}
}
|
|