- - PR -
前回のあらすじ
――晴子さんの“ワナ”にはまりつつも、何とかスイッチ入力にかかわるプログラミング、プログラムによるチャタリング対策までを理解した健一君。マイコン制御プログラミングの奥深さを肌で感じ、その面白さに気が付きはじめたようです。さて、今回は晴子さんのどんなスパルタが待ち受けているのでしょうか? そして、今度こそ宿題で満点を取れるのでしょうか? 頑張れ健一君! (前回へ)
さて、そろそろ健一君の授業が終わるころですが……。
|
| 注:本連載では、筆者が実際にH8Tiny-USBを制作し、動作確認を行った内容を掲載していますが、読者個人で作成したH8Tiny-USBの動作保証や、H8Tiny-USBを使用したことによる、損害・損失については一切保証できません。すべての作業は自己責任で行ってください。よろしくお願いします。 |
H8Tinyのタイマを使おう
| ここは健一君が所属する大学のサークル部屋。また、いつもの足音が聞こえてきました……。 | |||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
|||||||||||||||
|
――あらあら健一君、今回も晴子さんにダメ出しを食らっています。でも何の解説もなしに「タイマ」を使うのは、健一君でも大変です……。ということで、今回は時計用ベースのタイマである「タイマA」について解説します。
それでは、前回同様、健一君が作ってきたプログラムを見てみましょう(ソースコード1)。
/* 1秒間隔でカウント表示する。 |
| ソースコード1 健一君が作ったプログラム |
| ▼ソースコード1のダウンロード(seccnt0.lzh) |
なるほど、健一君のプログラムではwait関数を使いCPUの処理時間を浪費することで1秒間隔のカウント表示を実現しています。50万カウントで約1秒というわけですね。
wait関数のような空ループはマイコン制御のプログラムでCPUの処理を一定時間待機したいときによく用いる手法です。しかし、この手法では“正確な”待機時間を得るのは難しいでしょう。それに、Cコンパイラによって生成するコードは異なるので、50万カウントで約1秒さえも保証できません。
そこで、晴子さんが話していた「タイマ」の登場です。
晴子さんの宿題(3)のように、制御プログラムでは“周期的な処理”を行うことが多いので、すべてのマイコンといっていいほど、マイコンには「タイマ機能」が搭載されています。
それでは、「H8/3664」のタイマを使って晴子さんの宿題(3)を問いてみましょう。
H8/3664には表1のように3つのタイマが搭載されています。今回使用するのは時計向きの「タイマA」です。
名称 |
機能 |
タイマA |
インターバルタイマ/時計用タイムベース機能を内蔵した8ビットのタイマ |
タイマV |
外部イベントのカウントが可能な8ビットタイマ。コンペアマッチ信号により任意の周期割り込み要求、任意のデューティ比のパルス出力などが可能 |
タイマW |
アウトプットコンペア機能、インプットキャプチャ機能を内蔵した16ビットのタイマ。外部イベントのカウントが可能なほか、任意のデューティ比のパルス出力が可能な多機能タイマ |
図1にタイマAの機能を示します。
![]() |
図1 タイマAの機能イメージ |
タイマAの中核は8ビットのアップカウンタ(TCA)で、TCAに供給するクロックを選択することで周期的なイベントを発生させる機能を持っています。
タイマAは、16MHzのシステムクロックと32.768kHzの時計用サブクロックの2種類のクロック源を持ち、それぞれのクロックは分周器によって周波数が分周されます。
TCAは入力されるクロックによりカウントアップされ、カウンタ値が「255」になった後、クロックが入力されると、「タイマA割り込み要求フラグ(IRRTA)」が「1」にセットされます。
>>次ページでは、C言語によるタイマAの制御について解説する!
関連記事 半導体/エレクトロニクス
- 連載:イチから作って丸ごと学ぶ! H8マイコン道
- 特集:組み込みシステムに吹く“仮想化”の風
- 連載:組み込みマルチコア進化論(連載中)
- 連載:必修! FPGAタイミング解析の基礎(全5回)
- 連載:−ザ・組み込み−ソフトウェアのハードウェア化(連載中)
- 連載:S08ではじめるマイコン制御プログラミング(全6回)
- 連載:マイコン制御基礎の次(連載中)
- 連載:マイコン制御基礎の基礎(全10回)
- 連載:マイコン制御基礎以前(全10回)
- 連載:H8で学ぶマイコン開発入門(全13回)
- 連載:触って学ぼう FPGA開発入門(全6回)
- 連載:FPGA開発テクニック、チューニングの心得(全6回)
- 特集:いまさら聞けない FPGA入門
- 連載:バラして納得! 電子部品入門(全18回)
- 連載:完全マスター! 電子回路ドリル III(全14回)
- 連載:完全マスター! 電子回路ドリル II(全25回)
- 連載:完全マスター! 電子回路ドリル(全25回)
- 目指せ! 電子回路マスターへの道
- 目指せ! 電子回路マスターへの道 Part2
- 分かっておきたい、IP活用の落とし穴
組み込み開発フォーラム 新着記事
- フルスクラッチの“Hello World”を動かしてみよう(2011/3/31)
- FlexRayプロトコルの概要(その2)(2011/3/29)
- JASA、東北地域に拠点を置く会員企業を支援(2011/3/25)
- NEC、震災の影響を受けた4拠点の生産再開を発表(2011/3/23)
- 内部ブロック図の基礎と共通要素(2011/3/22)
- インテル、被災地におけるITインフラの復旧を支援(2011/3/22)
- Facts on AUTOSAR/AUTOSAR導入の現実(2011/3/18)
- 計測器・震災被害ホットラインを開設、テクトロニクス(2011/3/18)
- ZMP、地震の揺れを多角的に計測するアプリ無償配布(2011/3/16)
- メンター、3Dテレビ・マルチメディア検証プラットフォーム(2011/3/16)
- 【番外編】タチの良い計測値、悪い計測値とは?(2011/3/15)
- tarファイルシステムをAndroidに組み込む!!(2011/3/10)














