中国剰余定理
レシプロカル周波数カウンタ (周期カウンタ) のプログラム (の断片) を示します。 pcnt 変数、pcnt_Start() 関数、pcnt_Stop() 関数、calc_crt() 関数の定義はヘッダ・ファイル (pcnt.h)、C ソース・ファイル (pcnt.c) として独立させ、main.c と同じフォル…
タイミング・チャートの形で表現したレシプロカル周波数カウンタ (周期カウンタ) の処理の概要を下に示します。
レシプロカル周波数カウンタ (周期カウンタ) としてのソフトウェア構成は、以前に作成した Arduino でレシプロカル周波数カウンタ・ライブラリと同様にしました。 入力信号をカウンタのキャプチャ入力に直結しているので、入力周波数のレートで割り込みが掛…
PSoc Creator 上のタイマ・コンポーネントの配置を下に示します。 Timer モードの TCPWM コンポーネントを 2 つ配置して、クロック入力、キャプチャ入力を並列に接続しただけです。 クロック入力は HFCLK (High Frequency CLocK) から得た 48 MHz クロックを…
前回の記事の最後の式を再掲します。 n = (a2 - a1) · m1 + a1 この式を見ると (a2 < a1) の場合に右辺第 1 項が負となり、 n の値も負になることが分かります。 + a1 の項も効いてきそうな気がしますが、前回も述べたように、(a2 - a1) を 16 ビット左シフ…
中国剰余定理自体の証明や、一般的な解法については省略し、今回の応用に関する解法のみを説明します。 その前に「合同式」について触れておきます。 以降、特にことわりのない限り変数や定数は整数であるとします。 a ≡ b (mod m) と書いて「m を法 (modulu…
「中国剰余定理」(Chinese Remainder Theorem) は古代中国の算術書「孫子算経」に由来するもので「孫子の定理」と呼ばれることもあります。 「Chinese」は「中国の」とか「中国式」とか言うよりも、むしろ「(名前の分からない) 中国人の」といった意味合いで…
PSoC4 の TCPWM コンポーネントの仕様を見ていて、「中国剰余定理」を使って 16 ビット・タイマ・カウンタを 32 ビット化し、キャプチャ機能により入力信号の周期を求めるレシプロカル周波数カウンタを作ろうと思い立ちました。 中国剰余定理の説明は次回以…