BCD(2進化10進数)って何?:Q&Aで学ぶマイコン講座(67)(3/3 ページ)
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、初級者の方からよく質問される「BCD(2進化10進数)って何?」についてです。
実際のBCDの使用例
STマイクロエレクトロクス(以下、ST)の汎用32ビットマイコン「STM32F405シリーズ*2)」では、RTCでBCDが使用されています。
RTCで使われている秒、分、時(12時間または24時間形式)、曜日、日、月、年を示すレジスタはBCDで表現されます。
図2に、STM32F405シリーズのRTC時刻レジスタ(RTC_TR)の仕様をリファレンスマニュアル*3)から抜粋しました。
各ビットはAM/PM、時、分、秒を表します。時刻を表すビットは、ビット16からビット21の6ビットです。ビット16からビット19の4ビットが1の位を表し、ビット20からビット21が10の位を表します。時刻の場合、10の位は0から2までしかないので、2ビットで十分です。
分を表すビットは、ビット8からビット14の7ビットです。ビット8からビット11の4ビットが1の位を表し、ビット12からビット14が10の位を表します。秒を表すビットは、ビット0からビット6の7ビットです。ビット0からビット3の4ビットが1の位を表し、ビット4からビット6が10の位を表します。分と秒は最大値が59です。そのため10の位は5まで表現できれば良いので、3ビットで十分です。
ユーザーは、RTC_TRを32ビットで読み出し、AM/PM、時、分、秒に該当するビットを切り出します。時、分、秒のビットはBCDになっていますので、外部に表示する際は10進数として扱うことができ、ユーザーが変換する必要はありません。曜日、日、月、年もBCDなので、同様にそのまま10進数として扱えます。
これにより、秒、分、時、のレジスタ値を10進数に変換するソフトウェアの負荷を軽減できます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- マイコンの勉強法
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、超初級者の方からよく質問される「マイコンの勉強法/学習方法」です。 - マイコンの周辺部品は、最低何が必要?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、超初心者の方からよく質問される「マイコンの周辺部品は、最低何が必要?」です。 - CCR(Condition Code Register:条件コードレジスタ)の役割
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。今回は、超初級者の方からよく質問される「CCR(Condition Code Register: 条件コードレジスタ)の役割」についてです。 - レジスタとRAMの違い
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。48回目は、初心者の方からよく質問される「レジスタとRAMの違い」についてです。 - マイコンはビット数で何がどう違うのか?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。41回目は、初心者の方からよく質問される「マイコンはビット数で何がどう違うのか?」です。 - CISCとRISC、何が違う?
マイコンユーザーのさまざまな疑問に対し、マイコンメーカーのエンジニアがお答えしていく本連載。記念すべき1回目は、マイコン初心者の方からよく質問される「CISCとRISCの違い」についてです。