STM32資料 補足編 2

実行時間を測定してみよう

タイマー割り込みを使って実行時間を測定してみよう

今回やること

タイマー割り込みで1ミリ秒ごとにカウントアップすることで実行時間を測定します

作業の流れ

タイマーの設定

Configurationの設定

プログラム

前回紹介しなかった、タイマーの停止用関数を紹介します

TIMのスタート

指定したタイマーを停止するための関数

HAL_TIM_Base_Stop_IT(&htim6);

この関数の引数

引数名 変数型 内容
&htim TIM_HandleTypeDef* タイマーのポインタ(xはタイマーの番号)

サンプルコード

1msごとに割り込みを発生させて、実行時間を測定するプログラムを作成した

#include "wrapper.hpp"
#include "tim.h"
#include "usart.h"
#include 

uint32_t count = 0;

void init(){

	HAL_TIM_Base_Start_IT(&htim6);

    //測定したい処理
    HAL_Delay(1000);

    HAL_TIM_Base_Stop_IT(&htim6);

    //データの出力(タイマーの処理時間があるので、1ms引いておこう)
    std::string str = "count = " + std::to_string(count - 1) + "\n";
    HAL_UART_Transmit(&huart2, (uint8_t*)str.c_str(), str.size(), 1000);
}

void loop(){

}

//タイマーのカウントが最大値に達したときに呼び出される
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim){

	//TIM6 1msの割り込み
	if(htim == &htim6){

		count++;
	}
}

終わりに

今回は、タイマー割り込みを使った実行時間測定をやってみました!

リンク

・メインページ