/*********************************************************** *功能: 利用pit定时中断,模拟N路定时器,定时间隔1ms *形参: * 无 *返回: * 无 */ void SimulatTimerMsF_PIT_ISR() { uint_8 i; if((PIT_TFLG(SimulatTimer_PIT_Tn) & PIT_TFLG_TIF_MASK) != 0) { PIT_Flag_Clear(SimulatTimer_PIT_Tn); for(i = 0; i < SimulatTimerMsCountN; i++) { if(SimulatTimerMsVal[i] . flag.ten == 1) //使能 { if(++ SimulatTimerMsVal[i].count == 0) //溢出 { SimulatTimerMsVal[i].flag.tov = 1; } if(SimulatTimerMsVal[i].flag.tfc == 1) //比较 { if(SimulatTimerMsVal[i].count == SimulatTimerMsVal[i].cmr) { SimulatTimerMsVal[i].count = 0; SimulatTimerMsVal[i].flag.tcf = 1; } } } } } }
void pit0_isr() { if(PIT_TFLG(PIT0) == 1) { if(++PIT_2msCount >= PIT_2MS_CONSTON) { PIT_2msCount = 0; PIT_2msFlag = 1; } if(++PIT_5msCount >= PIT_5MS_CONSTON) { PIT_5msCount = 0; PIT_5msFlag = 1; PIT_steeringFlag = 1; PIT_motorFlag = 1; } if(++PIT_10msCount >= PIT_10MS_CONSTON) { PIT_10msCount = 0; PIT_10msFlag = 1; } if(++PIT_20msCount >= PIT_20MS_CONSTON) { PIT_20msCount = 0; PIT_20msFlag = 1; } if(++PIT_50msCount >= PIT_50MS_CONSTON) { PIT_50msCount = 0; PIT_50msFlag = 1; } if(++PIT_1sCount >= PIT_1S_CONSTON) { //每秒闪烁一下表示,PIT正常工作 PIT_1sCount = 0; PIT_1sFlag = 1; } } }
//========================================================================== //函数名称:pit0_isr //功能概要:中断例程 //参数说明:无 //函数返回:无 //========================================================================== void pit0_isr(void) { //DisableInterrupts; //关总中断 PIT_TFLG(0) |= PIT_TFLG_TIF_MASK; //清中断标志 Pit_update = true; Time_counter ++ ; if(Time_counter <= COUNTER) //数据初始化完成开始 { ReadMPU3205(); ReadBMA180(); ReadMPUsteer(); ReadBMAsteer(); //read_hmc5883l(); //read_L3G4200D(); //read_ADXL345(); } }