かふぇルネ コンペアマッチタイミング Nozomu.Kon 2013年12月5日 / 2017年7月28日 コンペアマッチの発生タイミングについてかふぇルネに投稿しました。 タイマの機能の一つであるコンペアマッチですが、ユーザーが想定する周期と実際の設定値には差があるので注意が必要です。 図はR8Cマイコンを例に取り上げています。TRCCNTはタイマのカウント、TRCGRAはコンペアマッチ指定値です。 コンペアマッチ指定値に「n」と書けば「n×クロック時間」と思いますが、実際は「(n+1)×クロック時間」となってしまいます。 これはコンペアマッチの判定タイミングが「タイマカウント更新時」となっているからです。 人間の頭ではタイマカウンタが更新された結果、指定値と一致してるかどうかを判断するように考えますが、R8Cでは更新された結果ではなく、更新する前に判断します。つまり、コンペアマッチにnを指定していた場合、タイマカウントは既にnになっているにも関わらず、次のタイマカウント更新時(->n+1になるタイミング)にコンペアマッチと判定されます。 ある周期が計算上「5000×クロック」となる場合、コンペアマッチ指定値には「5000-1」を入力するのはこのためです。 この考え方はルネサスマイコンの内、SH2a(MTU2)、RX200(MTU2)、RX600(MTU2)、RL78(タイマRG)、R8C(タイマRG)に適用されます。 設計の際には頭の片隅に置いておいてください。 MTU2 R8C RL78 RX RX200 SH2a コンペアマッチ タイマRG ABOUT ME Nozomu.Kon 集客導線、SNS導線、広告数値自動取得、LP/HP/CSS、ファネルツールなどなど個人・法人のスモールビジネスをIT/AIのチカラでフルサポートしています。 BLOG:https://embedded-property.net