测试环境
stm32f105rc。
main.c
LibTIM1_SysTimerInit(20,7200); //Init 2MS 系统计时器初始化 ((arr+1)*(psc+1))/Tclk;
LibTimer.c
/*******************************************************************************
* 定时器1中断服务程序
*******************************************************************************/
void TIM1_UP_IRQHandler(void) //TIM1中断
{
u8 i=0;
if (TIM_GetITStatus(TIM1, TIM_IT_Update) != RESET) //检查指定的TIM中断发生与否:TIM 中断源
{
TIM_ClearITPendingBit(TIM1, TIM_IT_Update); //清除TIMx的中断待处理位:TIM 中断源
//系统运行逻辑定时器10个
LibVarSystemIntTimer2Ms[0]++;
LibVarSystemIntTimer2Ms[1]++;
LibVarSystemIntTimer2Ms[2]++;
LibVarSystemIntTimer2Ms[3]++;
LibVarSystemIntTimer2Ms[4]++;
LibVarSystemIntTimer2Ms[5]++;
LibVarSystemIntTimer2Ms[6]++;
LibVarSystemIntTimer2Ms[7]++;
LibVarSystemIntTimer2Ms[8]++;
LibVarSystemIntTimer2Ms[9]++;
LibVarSystemIntTimer2Ms[10]++;
//系统时间
LibVarSystemTimer2Ms++;
LibVarSystemTimer10Ms = LibVarSystemTimer2Ms/5;
//50MS
if((LibVarSystemTimer2Ms%25)==0)
{
LibVarPiCounterArray[19] = LibVarPiCounterArray[18];
LibVarPiCounterArray[18] = LibVarPiCounterArray[17];
LibVarPiCounterArray[17] = LibVarPiCounterArray[16];
LibVarPiCounterArray[16] = LibVarPiCounterArray[15];
LibVarPiCounterArray[15] = LibVarPiCounterArray[14];
LibVarPiCounterArray[14] = LibVarPiCounterArray[13];
LibVarPiCounterArray[13] = LibVarPiCounterArray[12];
LibVarPiCounterArray[12] = LibVarPiCounterArray[11];
LibVarPiCounterArray[11] = LibVarPiCounterArray[10];
LibVarPiCounterArray[10] = LibVarPiCounterArray[9];
LibVarPiCounterArray[9] = LibVarPiCounterArray[8];
LibVarPiCounterArray[8]