ch32v003-getting-started-ja

MounRiver Studioで使う CH32V003 はじめの一歩

View on GitHub

目次に戻る

システムタイマー (SysTick)

SysTickは CPUコアの機能なので、詳細はリファレンスマニュアルではなく QingKeV2 マイクロプロセッサマニュアルに書いてある。

レジスタ

core_riscv.h では、SysTickレジスタ群は構造体として定義されていて、各レジスタには以下のような C言語の識別子が割り当てられている。

SysTick->CTLR
SysTick->SR
SysTick->CNT
SysTick->CMP
CTLR コントロールレジスタ 初期値 0x00000000
[   31] SWIE  RW ソフトウェア割り込み制御ビット 1:SWI発生 0:無効
[30: 4]       RO Reserved
[    3] STRE  RW オートリロード有効化ビット 1:コンペアマッチでカウンタクリアする 0:しない
[    2] STCLK RW クロックソース選択ビット 1:HCLK 0:HCLK/8
[    1] STIE  RW カウンタ割り込み有効化ビット 1:有効 0:無効
[    0] STE   RW SysTick制御ビット 1:SysTick動作 0:SysTick停止
ソフトウェア割り込み : SWIEに1を書き込むと SysTick割り込みが発生
                     (任意のタイミングでタスクスイッチするなどの用途)
カウンタ割り込み     : カウンタが 0になった時点で割り込み

SR ステータスレジスタ 初期値 0x00000000
[31: 1]           Reserved
[    0] CNTIF RW0 コンペアマッチフラグ 1:CNTとCMPが一致した 0:一致していない
フラグはソフトウェアでクリアする
コンペアマッチ割り込みは無し
STREが 1ならコンペアマッチでカウンタが 0になるので割り込み発生

CNTR カウンタレジスタ 初期値 0x00000000
[31: 0] CNTR  RW 32bitのカウンタレジスタ

CMPR コンペアレジスタ 初期値 0x00000000
[31: 0] CMPR  RW 32bitのコンペアレジスタ

この文章のライセンス

CC0 1.0 Universal

2026-02-17作成 2026-02-18更新 佐藤恭一 kyoutan.jpn.org

目次に戻る