Mbed(8)-ソフトウェア割り込み処理

前回は、STM32F446REしたTimer割り込みの機能を構築しました。、Tickerクラスを使用した、等間隔割り込みでは、5usec間隔の割り込みに対応できないということで、周辺機器の設定を変更するレジスタを直接変更して、5usec間隔の割り込み機能を構築しました。前回の内容は下記のサイトを参考にしてください。

Mbed(7)-レジスタ設定によるTimer割り込み

今回は、ソフトウェア割り込みを使用した機能を構築したいと思います。ソフトウェア割り込みは特定のコードを記述することで、指定した割り込みをそのコードをトリガとして割り込みを行うことができます。このソフトウェア割り込みを使用して、LEDを点滅する機能を構築したいと思います。ソフトウェアトリガ割り込みを、Timerの割り込みのタイミングで発生させて、ソフトウェアトリガ割り込みの割り込み関数で、LEDの点灯消灯を行い、LEDを点滅させたいと思います。目視でもわかりやすいように100msec間隔でTimer機能を設定します。Mbed対応ボードは、NUCLEO-F446REを使用します。ハードウェアはPC(Intelプロセッサ)、OSはUbuntuです。開発環境は下記のとおりです。

  • Visual Studio Code
  • GNU Arm Embedded Toolchain
  • opneOCD

それでは、機能を構築していきたいと思います。まずは、新規プロジェクトの作成です。新規プロジェクトの作成方法は、下記のサイトを参考にしてください。

Mbed(5)-GNU Arm Embedded Toolchain + opneOCDを使用してMbed対応ボード動作確認

STM32(3)-ソフトウェアトリガ割り込み

前回は、Timerを使用して、LEDの点滅回路を構築します。評価ボードは、NUCLEO-F446REを使用しました。マイコンは、STM32F446になります。開発環境は、「STM32CubeIDE」を使用しました。

前回の内容は下記のサイトを参考にしてください。

STM32(2)-TimerによるLED点滅機能

今回は、ソフトウェアトリガ割り込みを行いたいと思います。機能は、ソフトウェアトリガ割り込みを、Timerの割り込みのタイミングで発生させて、ソフトウェアトリガ割り込みの割り込み関数で、LEDの点灯消灯を行い、LEDを点滅させたいと思います。前回と同様で、評価ボードはNUCLEO-F446RE、開発環境は、「STM32CubeIDE」を使用します。

それでは、Timerを使用して、LEDの点滅回路を構築したいと思います。まずは、新規プロジェクトを作成します。新規プロジェクトの作成方法は下記のサイトを参考にしてください。

STM32(1)-LED点滅機能

新規プロジェクトが作成できましたら、次はTimerを構築します。GUI(.iocファイル)でのTimerのコード生成方法は前回と同様です。前回の内容を参考にしてください。

STM32(2)-TimerによるLED点滅機能