■サンプルコード ■動作環境
- CPU Renesas社 RZ/T1
- ボード Rensas社 RZ/T1評価ボード RTK7910022C00000BR
コンペアマッチタイマ(CMT) ユニット1のチャネル0を使用して1ミリ秒毎にコンペアマッチ割込みを発生させます。
1000回割込みが発生すると、LED表示を反転させます。
(1秒毎にLEDの状態が変化します。)
サンプルコードを動作させる手順はファイル解凍後に生成されるファイル「EWARM\RAM\Readme_EWARM.txt」を参照してください。
■割込みを扱う手順
- コンフィグレータを起動し、プロジェクトを開いてください。(または、新規に作成してください)
- 割込みサービスルーチンを登録してください。
割込みサービスルーチンのパラメータの詳細は次のドキュメントを参照してください。
・μC3/Standard ユーザーズガイドのcre_isrの説明
・μC3/Standardユーザーズガイド プロセッサ依存部 Cortex-R4編
割込み番号は割込みコントローラのベクタ番号を入力してください。
ベクタ番号は「RZ/T1グループ ユーザーズマニュアル ハードウェア編」の「12.4.3 ベクタテーブル」を参照してください。
「RZ/T1グループ ユーザーズマニュアル ハードウェア編」はルネサス社のWebページから入手してください。
- コンフィグレータからソースコードを生成してください。(メニューの「プロジェクト」→「ソース生成」)
- ソースコード生成直後は、main.cに登録した割込みサービスルーチンの関数がありますが、中身が実装されていないので、実装してください。
※サンプルコードでは割込みサービスルーチン「CMTSample_isr」を main.c から sample_CMT.c に移動しています。 - コンフィグレータで登録したOSリソースはシステム起動時に初期化ハンドラで生成されます。
ユーザがリソース生成のコードを書く必要はありません。
下のコードはコンフィグレータが生成したコードになります。(割込みサービスルーチンを生成しています。)
- CMT設定、割込みを割込みを許可します。(サンプルコード: sample_CMT.c CMTSampleTask関数)
- 割込みが発生する条件(サンプルコードでは1ミリ秒経過)を満たせば、コンフィグレータで登録した割込みサービスルーチンが実行されます。
サンプルコードでは割込みサービスルーチンの他に、コンフィグレータにタスクとセマフォも登録しています。
これらのOSリソースは割込みサービスルーチンと同様にコンフィグレータで登録したOSリソースはシステム起動時に初期化ハンドラで生成されるので、
ユーザがリソース生成のコード(acre_xxx関数、cre_xxx関数を実行するコード)を書く必要はありません。
- タスク セマフォ