在人員監控裝置研發中,如何對微控制器的通用定時器進行配置?

筆者近期在進行人員監控裝置的研發。人員監控裝置是一款集地理資訊定位、運動軌跡監測、電子圍欄設定、救援報警等多種功能於一體的監控終端。

可以應用在工地人員監控、產業園區人員監控、礦山人員監控、老人安全監控、寵物智慧監控等多種監控環境之中。

在人員監控裝置研發中,如何對微控制器的通用定時器進行配置?

被監管人員佩戴上跟蹤監控終端後,管理者就可以在雲端後臺實時視覺化的對相關人員執行軌跡和活動範圍進行監控管理。

管理者還可以在危險區域設定電子圍欄,當監管人員超出電子圍欄區域時,跟蹤監控裝置會立即發出報警提醒,保證監管人員安全。

在人員監控裝置研發中,如何對微控制器的通用定時器進行配置?

通用TIMx (TIM2、TIM3、TIM4和TIM5)定時器中的核心部分是一個可進行程式設計操作的預分頻器驅動的16位自動裝載計數器。

定時器可以運用在不同的場合之中,如:產生輸出波形(輸出比較和PWM)。我們在使用定時器預分頻器和RCC時鐘控制器預分頻器時,可以將脈衝長度和波形週期根據產品效能的需要在幾個微秒到幾個毫秒之間進行調整。

在人員監控裝置研發中,如何對微控制器的通用定時器進行配置?

每一個定時器都是完全獨立的個體,是沒有辦法做到共享資源的。相信很多產品研發人員都會需要對定時器進行設定,那麼具體如何操作呢?下面筆者對具體的程式設計過程進行詳細展示。

配置示例:

系統時鐘8M、配置TIM3 1ms中斷一次。

//1ms 中斷

void TIM3Init(void)

{

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

NVIC_InitTypeDef NVIC_InitStructure;

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);

TIM_TimeBaseStructure.TIM_Period = 1000;

TIM_TimeBaseStructure.TIM_Prescaler = 7;

TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

//中斷優先順序NVIC設定

NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;

NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;

NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3;

NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;

NVIC_Init(&NVIC_InitStructure);

TIM_ClearITPendingBit(TIM3, TIM_IT_Update);

TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE );

TIM_Cmd(TIM3, ENABLE);

}