April 2026
356 pages
4h 48m
Japanese
入力、出力、タイマーは、ほとんどの組み込みシステムで動作の基礎となります。他のコンポーネントとの通信手段もこれらで構成されます(「7章 周辺機器との通信」のBit-Bangドライバも参照してください)。本章では、製品開発の例に実践的に学びます。ライトの点灯やLEDの調光、測定以外のタイマーの役割について説明します。
その前に、プロセッサのインタフェースであるレジスタについて解説しておきます。
適切にレジスタとやり取りすることで、I/Oラインを正しく動作させます。レジスタはハードウェアとのAPIと考えても良いです。レジスタにはプロセッサの設定や周辺機器の制御など多くの種類があり、チップのユーザマニュアルに記載されています。レジスタはメモリにマップされているため、特定のアドレスに書き込むことで、レジスタを読み書きできます。レジスタの各ビットには意味があるため、よく2進法でビット操作をします。
2進法と16進法の計算について解説します。特定のビットを変更するには、ビットをシフトさせるのが一般的です。変数全体を変更する場合は16進法が便利です。具体的に表4-1にまとめました。
表4-1 2進法と16進法の計算
| 2進法 | 16進法 | 10進法 | ビット表現や補足事項 |
|---|---|---|---|
0000 | 0 | 0 | 0はすべて同じ。 |
0001 | 1 | 1 | これは(1 << 0)。 |
0010 | 2 | 2 | これは(1 << 1)。2シフトする値と同じ値になる。 |
0011 | 3 | 3 | 2進法について、これは1 + 2になっている。 |
0100 | 4 | 4 | (1 << 2)は1を左に2ビットシフト。 |
0101 | 5 | 5 | 1ビットごとにビットが立っている。 |
0110 | 6 | 6 | ((1 << 2)|(1 << 1))、((1 << ... |
Read now
Unlock full access