JPH09153790A - タイマカウンタのカウント方法 - Google Patents

タイマカウンタのカウント方法

Info

Publication number
JPH09153790A
JPH09153790A JP31125795A JP31125795A JPH09153790A JP H09153790 A JPH09153790 A JP H09153790A JP 31125795 A JP31125795 A JP 31125795A JP 31125795 A JP31125795 A JP 31125795A JP H09153790 A JPH09153790 A JP H09153790A
Authority
JP
Japan
Prior art keywords
timer
time
processing
flag
counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP31125795A
Other languages
English (en)
Other versions
JP2984591B2 (ja
Inventor
Satoko Akeda
聡子 明田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC IC Microcomputer Systems Co Ltd
Original Assignee
NEC IC Microcomputer Systems Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC IC Microcomputer Systems Co Ltd filed Critical NEC IC Microcomputer Systems Co Ltd
Priority to JP7311257A priority Critical patent/JP2984591B2/ja
Publication of JPH09153790A publication Critical patent/JPH09153790A/ja
Application granted granted Critical
Publication of JP2984591B2 publication Critical patent/JP2984591B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Microcomputers (AREA)
  • Programmable Controllers (AREA)

Abstract

(57)【要約】 【課題】マイクロコンピュータの内蔵タイマを基準タイ
マとして用いるソフトウェアタイマのカウントにあた
り、タイムアップ時に行うタイマカウント処理を短縮
し、制御タイミングの厳しいシステムへのソフトウェア
タイマの適用を可能にすること。 【解決手段】1個のソフトウェアタイマ10につき、カ
ウンタ11と、このカウンタ11の上位ビットにタイム
アップフラグ12及びカウント許可フラグ13とを割り
付ける。このソフトウェアタイマ10を処理ステップに
基づいて−1していくことにより、カウンタ11のオー
バフローフラグをタイムアップフラグ12として利用す
るとともに、カウント許可フラグ13の設定を行うこと
ができ、タイムアップ時のタイマカウント処理を短縮で
きる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明はタイマカウンタのカ
ウント方法に関し、特にマイクロコンピュータに内蔵さ
れるタイマカウンタのカウント方法に関する。
【0002】
【従来の技術】従来、マイクロコンピュータのソフトウ
ェアにおいて、任意の時間の経過を検知する方法とし
て、第1にマイクロコンピュータの内蔵するタイマカウ
ンタに時間をカウントさせ、指定の時間をカウントした
ら割り込み信号発生することにより、指定時間の経過を
検知する方法がある。
【0003】図4(a),(b)はそれぞれ従来のかか
る内蔵タイマカウンタによる任意時間のカウント処理に
おけるメインモジュール処理フロー図およびタイマ割り
込み処理フロー図である。図4(a)に示すように、こ
の処理フローは、10msごとに処理2を実行するにあ
たり、メインモジュールで内蔵タイマカウンタに10m
sの時間を設定し、内蔵タイマを起動してからタイマカ
ウンタの割り込みを許可するものである。しかる後、図
4(b)に示すように、内蔵タイマカウンタの割り込み
信号が発生したなら、タイマ割り込みモジュールにおい
て、処理2を実行する。
【0004】また第2の時間経過検知方法として、前述
した割り込み信号を使用せず、タイマカウンタが指定の
時間をカウントしたらマイクロコンピュータで内部的に
セットされるフラグをメイン処理で監視し、このフラグ
が1にセットされるのを待つことにより、指定時間の経
過を検知する方法もある。
【0005】図5はこのような内蔵タイマカウンタによ
る任意時間のカウント処理におけるメインモジュール処
理フロー図である。図5に示すように、この処理フロー
は、前述した図4の処理フローと同様に、10msごと
に処理2を実行する場合のフローであるが、タイマ割り
込みを使用せずに行うものである。まず、メインモジュ
ールで内部タイマカウンタに10msの時間を設定し、
内蔵タイマを起動する。ついで、タイマカウンタが10
msをカウントすると、内部的にセットされるフラグを
監視し、このフラグが0にクリアされたままなら処理2
の実行待ちとし、1にセットされたなら処理2を実行す
る。この方法では、割り込み処理は不要となる。
【0006】この図5のような方法は、小さなシステム
に適用するにあたっては問題がないが、最近ではマイク
ロコンピュータのシステムは大規模化し、複数用途のた
めに複数種類のタイマカウンタを必要とするようになっ
てきている。
【0007】しかし、通常マイクロコンピュータの内蔵
するタイマカウンタは1〜3個程度であるため、上述し
たような1つの用途に1つの内蔵タイマカウンタを割り
当てる方法では、タイマカウンタの個数が到底足りなく
なる。そこで、1個の内蔵タイマカウンタにより基準時
間を作り、この基準時間をソフトウェアにより分周させ
て複数種類の時間をカウントするソフトウェアタイマを
用いることが一般的になっている。
【0008】この方法は、カウンタをRAMに割り付
け、基準時間(たとえば10ms)ごとにこのRAMカ
ウンタをカウントアップまたはカウントダウンしていく
ものである。1つの用途に1つのRAMを割り当て(5
0の用途では50個のRAMが必要となる)、カウント
したい時間に相当する値(基準時間を10msとし、4
0msをカウントする場合は4)をソフトウェアタイマ
に設定し、基準時間毎に発生するタイマ割り込みですべ
てのソフトウェアタイマをカウントすることが基本処理
となる。ここで、前述したように基準時間を10msと
し、2.55秒(=10ms×255)以下の短い時間
をカウントする場合を例にとると、カウント値は最大2
55であればよく、RAM領域は8ビット長あれば足り
る。また、16ビット長あれば、最大10分程度(約1
0ms×65535)までカウントすることが可能であ
る。
【0009】図6(a)〜(c)はそれぞれ従来のソフ
トウェアタイマを用いて任意時間のカウント処理を行う
際のメインモジュール処理フロー図と処理モジュール2
の処理フロー図および内蔵タイマ割り込みモジュール処
理フロー図である。図6(a)に示すように、この処理
フローは、メインモジュールから呼ばれる処理モジュー
ル2において、ソフトウェアタイマでカウントした所定
の時間経過後に、処理2および処理3を行うというもの
である。この処理モジュール2は、図6(b)に示すよ
うに、ある条件下においてのみ起動されるものとする。
また、ソフトウェアタイマは、図6(c)に示すよう
に、10msごとに発生する内蔵タイマ割り込みのモジ
ュールにおいて、すべてカウントするようになってい
る。
【0010】まず、図6(a)に示すメインモジュール
において、内蔵タイマに10msを設定し、内蔵タイマ
を起動した後、割り込みを許可にする。そして、ソフト
ウェアタイマのカウント結果により、所定の処理を行う
処理モジュール2の起動条件を判断し、起動条件を見た
していれば、処理モジュール2で使用する250msタ
イマ(250ms=10m4×25よりRAMのカウン
タに25を設定)と1分タイマ(1分=10ms×60
00より6000)との初期設定を行う。
【0011】一方、10msごとに発生する基準タイマ
割り込みで、図6(c)に示す内蔵タイマ割り込みモジ
ュールでは、250msタイマと1分タイマのRAMの
カウントダウン処理を行う。また、図6(b)に示す処
理モジュール2では、250msタイマのRAMのカウ
ンタが0であれば、250ms経過したということで、
図6(b)に示す処理2を行う。同様に、1分タイマの
RAMのカウンタが0であれば1分が経過したというこ
とで、図6(b)に示す処理3を行う。
【0012】この例では、2個のみのソフトウェアタイ
マを使用する例を示したが、ソフトウェアタイマの個数
が何個になっても、図6(a)〜(c)の処理例と同様
に、内蔵タイマの割り込みモジュールでソフトウェアタ
イマをカウントしていく。
【0013】次に、このソフトウェアタイマを具体的に
エアコンシステムに用いた例を説明する。このエアコン
システムのソフトウェアでは、室温のサーモスタット制
御や冷媒の高圧制御、コンプレッサーの起動/停止制御
などで、数秒〜数10分のタイマが50個程度必要とな
る。
【0014】図7(a)〜(c)はそれぞれ従来のソフ
トウェアタイマによる任意時間のカウントをエアコンシ
ステムに応用した場合のメインモジュール処理フロー図
と室温制御モジュール処理フロー図および内蔵タイマ割
り込みモジュール処理フロー図である。図7(a)に示
すように、室温制御にこのようなソフトウェアタイマを
用いるにあたり、メインモジュールでは、内蔵タイマを
起動し割り込みを許可した後、コンプレッサ起動の判定
を行い、そのコンプレッサが起動されていれば、ソフト
ウェアタイマに2分(2分=10ms×12000より
12000)をセットし、室温制御モジュールを起動す
る。
【0015】ついで、図7(b)に示すように、この室
温制御モジュールでは、2分タイマのタイムアップを監
視し、その2分タイマがタイムアップしていれば、室温
サーモをONにして復帰する。一方、この2分タイマ
は、図7(c)に示すように、内蔵タイマの基準時間割
り込みモジュールで10msごとにカウントダウンさ
れ、最終的にはメインモジュールに復帰する。
【0016】しかしながら、上述したソフトウェアタイ
マをワンショットタイマ(ある時から1回だけ所定の時
間を計測する)のように使用する場合には、カウントを
終了したら(ダウンカウンタの場合はカウンタが0にな
ったら)カウント動作を停止させたり、ある条件下では
カウント動作を一時的に保留したりといった使用方法を
することがある。このような場合、カウント動作を行っ
て良いのか否かを判断する情報が各ソフトウェアタイマ
に必要となる。また、様々なビット長のソフトウェアタ
イマが存在する場合、タイムアップを判定するモジュー
ル側(前述した図6の例では処理モジュール2)での判
定方法がそれぞれ異なってくる。
【0017】例えば、8ビットのソフトウェアタイマと
16ビットのソフトウェアタイマでは、カウンタが0か
どうかの判定をするための命令が違い、タイムアップを
判定するモジュール側(図6の例では処理モジュール
2)の処理が煩雑になりかねない。
【0018】そこで、各ソフトウェアタイマについて、
タイムアップしたかどうかを表わす情報を付加すると、
タイムアップを判定するモジュール側の処理は、そのフ
ラグをチェックするのみとなるため、ソフトウェアタイ
マのビット長に関わらず共通となる。このタイムアップ
の情報を作るには、ソフトウェアタイマをカウントする
基準タイマの割り込み処理側(図6の例では内蔵タイマ
割り込みモジュール)で、カウンタが0か否かの判定を
必要とするが、これは、前述したカウンタが0になった
ときのカウント動作停止の情報を作るときにも必要な判
定処理であるので、共通化することができる。
【0019】このようなことから、上述した図6のソフ
トウェアタイマのカウント方法をさらに発展させた例も
提案されている。すなわち、、ソフトウェアタイマの構
成としては、カウンタ部分のみでなく、ソフトウェアタ
イマのタイムアップ情報と、カウント許可/禁止情報を
持たせたソフトウェアタイマが実現されている。
【0020】次に、このようなソフトウェアタイマの構
成と動作を図8〜図10を用いて説明する。
【0021】図8は従来のソフトウェアタイマ1個のタ
イマエリア構成図である。図8に示すように、従来の1
個あたりのソフトウェアタイマ10aは、複数ビットか
らなるカウンタ11aと1ビット構成のカウント許可フ
ラグ13aと1ビット構成のタイムアップフラグ12a
とを持って形成される。このソフトウェアタイマ10a
がタイムアップしたか否かを表すために、ソフトウェア
タイマ1個につき、RAMの1ビットをタイムアップフ
ラグ12aとして使用するとともに、ソフトウェアタイ
マ10aのカウント動作の許可/禁止を表わすために、
同じくRAMの1ビットをカウント許可フラグ13aと
して使用している。そして、カウンタ11aを前述した
ソフトウェアタイマと同様に、1用途に1個の割合いで
RAMに割り当てる。
【0022】このような1個のソフトウェアタイマ10
aにより、基準時間を10msとして、40msの時間
をカウントする際のカウント方法を、具体的な8ビット
マイクロコンピュータを例にとり、図9および図10を
用いて説明する。なお、図9と図10の処理ステップ番
号は対応している。
【0023】図9は図8におけるソフトウェアタイマを
用いたカウント動作説明図であり、図10(a)〜
(d)はそれぞれ図9のカウント動作を説明するための
メイン処理フロー図,処理モジュール3のソフトウェア
タイマ初期設定処理フロー図,内蔵タイマ割り込み処理
フロー図,処理モジュール3の処理フロー図である。
【0024】まず、図9に示すように、用途11a,1
3a,12aはそれぞれ図8におけるソフトウェアタイ
マ10aのカウンタ11aとフラグ13a,12aを表
わし、処理ステップS11,S13〜S16,S18,
S19は図10(b),(c)の処理ステップを表わし
ている。
【0025】また、図10(a)〜(d)において、図
10(a)に示すメイン処理は、図10(d)に示す処
理モジュール3の起動条件が成立している場合は、図1
0(b)に示す処理モジュール3のソフトウェアタイマ
初期設定処理フローを呼び出す。この処理モジュール3
のソフトウェアタイマ初期設定処理では、カウント値4
(40ms=10ms×4)をカウンタに設定し、図8
のカウント許可フラグ13aをセットし、図9の処理ス
テップS11、すなわち図10(b)のステップS11
に示すカウンタ許可状態にしておく。なお、他にもソフ
トウェアタイマを使用している場合は、その初期設定を
それぞれ必要な箇所で行うのが通常である。
【0026】一方、図10(c)に示す10msごとに
発生する内蔵タイマ割り込み処理において、図8のカウ
ント許可フラグ13aが図10(c)のステップS12
のようにセットされていると(カウント動作許可なら
ば)、図9や図10のS13のように、ソフトウェアタ
イマ10aのカウンタ11aをカウントダウンする。
【0027】次に、ソフトウェアタイマのタイムアップ
を判定するために、図10(c)のS17に示すとお
り、カウンタ11aが0になったか否かをチェックす
る。このカウンタが0でなければ、未だタイムアップし
ていないということであるので、図10(c)において
次の10ms内蔵タイマ割り込みの処理で、図9のS1
4や図10(c)のS14のように、カウンタ11aを
再びカウントダウンする。この後、図10(c)のステ
ップS20に示すように、ソフトウェアタイマが複数個
ある場合は、引き続きそのソフトウェアタイマに対し、
図10(c)のステップS12〜S17と同様の処理を
行うことになる。
【0028】このように、カウント許可フラグ13aの
チェックとカウンタ11aの減算を、図9のステップS
13〜S16および図10(c)のS12〜S17に示
すように、カウンタ11aが0になるまで繰り返し行
う。このカウンタ11aが0になると、図9や図10
(c)のS18に示すように、タイムアップフラグ12
aをセットし、図9や図10(c)のステップS19に
示すように、カウント許可フラグ13aをクリアしてカ
ウント禁止状態とする。なお、ソフトウェアタイマが複
数個ある場合は、図10(c)のステップS20に示す
ように、引き続きその個数分だけ図10(c)のステッ
プS12〜S19の処理を行う。
【0029】さらに、図10(a)でメイン処理から呼
ばれる図10(d)の処理モジュール3において、該当
するソフトウェアタイマ10aのタイムアップフラグ1
2aをチェックし、そのフラグ12aがセットされてい
るときは、図10(d)のステップS21に示すよう
に、40ms経過ということで、図10(d)のステッ
プS22に示すタイムアップフラグのクリアとステップ
S23の処理4とを行う。逆に、タイムアップフラグが
セットされていなければ40ms未経過ということで、
タイムアップフラグのクリアと処理4は行わない。
【0030】
【発明が解決しようとする課題】上述した従来のソフト
ウェアタイマのカウント方法では、タイムアップ時の内
蔵タイマ割り込み処理内で、1個のソフトウェアタイマ
につき最低5命令〔図10(c)のステップS12〜S
19の処理において、1処理を1命令と仮定した場合〕
の処理を実行するため、ソフトウェアタイマの個数が多
ければ多いほど実行する命令数が多くなり、内蔵タイマ
の割り込み処理時間が長くなっている。
【0031】このカウント方法では、ソフトウェアタイ
マカウント処理中に発生する同システムの別の割り込み
処理はその保留される時間がかなり長くなる。すなわ
ち、1個のソフトウェアタイマがタイムアップしたとき
に費やす処理時間は、前述したように、5命令=約10
μs(1命令2μsとした場合)となる。仮に、今行っ
ている内蔵タイマ割り込みで、30個のソフトウェアタ
イマがタイムアップしたとすると、10μs×30=3
00μsの時間が処理にかかることになる。
【0032】例えば、エアコン室内機および室外機のフ
ァンモータ制御において、モータからの位相信号を割り
込み処理で取り込むシステムの場合、ソフトウェアタイ
マのカウント処理開始直後に発生した位相信号の割り込
み処理の受け付けが300μs遅れることになり、モー
タの回転制御に多大な影響を及ぼしてしまう。ここでの
位相信号とは、モータの回転速度を滑らかに変化させた
り、あるいは一定速度に保つために、前回のモータ回転
の位相に対する今回の位相のずれを認識し、次回のモー
タへ流す電流もしくは電圧(モータの回転速度)を決定
する際のマイコンへの入力信号である。通常、かかる位
相信号は、内蔵タイマにより信号間の時間を測定するこ
とにより、前回とのずれが算出される。
【0033】また、エアコンシステムにおいて、50個
程度のソフトウェアタイマを必要とすることは、前述し
たとおりである。しかも、1回の内蔵タイマ割り込みで
タイムアップするソフトウェアタイマの個数はタイミン
グによってまちまちであるが、仮にあるタイミングでそ
の半数程度の30個のソフトウェアタイマがタイムアッ
プしたとすると、その場合には、ソフトウェアでの位相
信号の検知が最大300μs遅れることになる。その
上、エアコンのファンモータからの位相信号は、1ms
程度の周期で入力される場合もあり、300μsの位相
信号検知のずれは、1周期の約30%にあたる。したが
って、モータを一定速度で回転させるべき場合でも、次
回の回転速度は1.3倍速くなってしまい、回転速度制
御の精度が大幅に低下してしまう。すなわち、位相信号
の検知が遅くなるということは、モータの回転速度が実
際より遅いと認識されるため、本当に必要な速度以上に
速く回転させるようにソフトウェアで処理してしまうた
めである。
【0034】したがって、かかるエアコンのファンモー
タの速度制御のようなフィードバック制御(制御側の電
流,電圧のような出力によりモータの回転速度を制御
し、そのモータが回転して制御側へ戻される信号により
制御側の次回のモータへの出力が決まるような帰還制
御)において、速度検知(エアコンの例では位相信号検
知)に間違いが連続して発生すると、モータ制御が不能
に陥り、最悪の場合、モータがその最大定格以上の速度
で回転し続けること、すなわちモータに最大定格以上の
電流が流れ続けるか、もしくは電圧がかかり続けること
になる。このような場合、モータの動作は保証されず、
時にはモータが破壊され、エアコンが機能しなくなると
いう欠点がある。
【0035】また、上述した従来のソフトウェアタイマ
のようなタイマカウンタのカウント方法では、あるタイ
ミングでのソフトウェアタイマのタイムアップ個数を3
0個と仮定したが、これが35個、40個、45個とな
った場合、前記の事態は、より一層悪くなることはいう
までもない。
【0036】本発明の目的は、カウンタのタイムアップ
時の処理を簡略化し、CPUの空き時間を増やしてシス
テム全体の処理時間に余裕をもたせるとともに、そのタ
イマカウント処理のプログラムサイズを小さくすること
のできるタイマカウンタのカウント方法を提供すること
にある。
【0037】
【課題を解決するための手段】本発明のタイマカウンタ
のカウント方法は、所定の周期で割り込みを発生し、そ
の割り込みによって記憶領域上に設けられたタイマカウ
ンタ領域の値をカウントアップまたはカウントダウン処
理することにより時間をカウントするにあたり、あらか
じめ定められた所定の値をカウントしたとき、前記記憶
領域上に設けられたフラグ領域にフラグを設定するタイ
マカウンタのカウント方法において、前記フラグ領域と
前記タイマカウンタ領域を連続した記憶領域に設けると
ともに、前記フラグ領域のビットデータを前記タイマカ
ウンタ領域のビットデータの上位ビット領域に設け、カ
ウント時に前記フラグと前記タイマカウンタのビットデ
ータとを連続したタイマカウンタ領域としてカウントア
ップまたはカウントダウン処理するように構成される。
【0038】また、本発明のタイマカウンタのカウント
方法における前記フラグ領域の1ビットは、前記カウン
タ領域の上位ビットにタイムアップフラグとして設ける
ように構成される。
【0039】さらに、本発明のタイマカウンタのカウン
ト方法における前記フラグ領域の1ビットは、前記カウ
ンタ領域の上位ビットにカウント許可フラグとして設け
るように構成される。
【0040】要するに、本発明はソフトウェアタイマの
個数が多ければ多いほど実行する命令数が多くなり、内
蔵タイマの割り込み処理時間が長くなるという従来の問
題点を解決するために、ソフトウェアタイマ1個あたり
のカウンタとタイムアップフラグ,カウント許可フラグ
のRAMへの割り付け方を特定するものであり、タイム
アップフラグとカウント許可フラグをカウンタのオーバ
フローもしくはアンダーフローにより制御するととも
に、カウンタ領域の上位ビットにこれらタイムアップフ
ラグおよびカウント許可フラグを割り付けるようにして
いる。
【0041】
【発明の実施の形態】次に、本発明の実施の形態につい
て図面を用いて詳細に説明する。
【0042】図1は本発明の一実施の形態を説明するた
めのソフトウェアタイマのタイマエリア構成図である。
図1に示すように、本実施の形態は、8ビットのマイク
ロコンピュータに用いるソフトウェアタイマ10を表わ
し、1個のソフトウェアタイマにつき1バイトのRAM
を割り付けるものである。すなわち、6ビットカウンタ
11をビット0〜5に、タイマがタイムアップしたこと
を示すタイムアップフラグ12をビット6に、ソフトウ
ェアタイマ10のカウント許可/禁止を示すカウント許
可フラグ13をビット7にそれぞれ割り付けたものであ
る。本実施の形態は、このようなソフトウェアタイマ1
0を用い、基準時間を10msとしたときに、40ms
の時間をカウントするカウント方法を示すものである。
【0043】図2は図1におけるソフトウェアタイマを
用いたカウント動作説明図であり、図3(a)〜(d)
はそれぞれ図1のカウント動作を説明するためのメイン
処理フロー図,処理モジュール1のソフトウェアタイマ
初期設定処理フロー図,内蔵タイマ割り込み処理フロー
図,処理モジュール1の処理フロー図である。なお、図
2は前述した従来例の図9に対応しており、また図3
(a)〜(d)は図10(a)〜(d)に対応してい
る。
【0044】まず、図3(a)のメイン処理において、
図3(d)の処理モジュール1の起動条件が成立してい
ると、図3(b)に示す処理モジュール1のソフトウェ
アタイマ初期設定処理を呼び出す。この処理モジュール
1のソフトウェアタイマ初期設定処理では、カウントし
たい時間に相当する値(40ms=10ms×4)から
−1した値、つまり3をカウンタ11に設定し、図2お
よび図3(b)の処理ステップS1に示すように、カウ
ント許可フラグ13をセット(カウント許可状態に)し
ておく。なお、他にもソフトウェアタイマを使用してい
る場合は、その初期設定をそれぞれ必要な箇所で行う。
ここで、カウントしたい時間に相当する値を−1する理
由は、従来、図8のカウンタ11aが0になったことで
タイムアップを判定していたのに対し、本実施の形態で
は、図1のカウンタ11のオーバーフローを利用してタ
イムアップを判定するためである。
【0045】つぎに、図3(c)に示す内蔵タイマの割
り込み処理において、カウント許可フラグ13が、図3
(c)の処理ステップS2のように、セットされている
と(カウント動作許可ならば)、図2の処理ステップS
3のとおり、ソフトウェアタイマ10のカウンタを−1
する。前述した従来のカウント方法では、このあとタイ
ムアップしたか否か(カウンタが0となったか否か)の
チェックを行っていたが、本実施の形態ではこのチェッ
クを行わない。
【0046】このあと、図3(c)の処理ステップS7
に示すように、ソフトウェアタイマ10が複数個ある場
合は、引き続きそのソフトウェアタイマに対し、処理ス
テップS2〜S7と同様の処理を行うことになる。
【0047】続いて、図2および図3(c)の処理ステ
ップS4に示すように、次の内蔵タイマ割り込みで再び
カウンタ11をカウントダウンする。この減算を、図2
および図3(c)の処理ステップS3〜S6に示すよう
に、4回繰り返すと、ソフトウェアタイマ10のRAM
値が図2の処理ステップS6のように、カウンタ11の
部分がオーバーフローした形となり、事実上カウント許
可フラグ13がクリアされ、タイムアップフラグ12は
セットされたことになる。同様に、図3(c)の処理ス
テップS7に示すように、ソフトウェアタイマが複数あ
る場合は、その個数分だけ図3(c)の処理ステップS
2〜S6繰り返す。
【0048】さらに、図3(d)に示すステップS8の
ように、メイン処理から呼ばれる処理モジュール1にお
いて、該当するソフトウェアタイマ10のタイムアップ
フラグ12をチェックし、そのフラグ12がセットされ
ていると、40msが経過したということで、図3
(d)のステップS9およびステップS10に示すよう
に、タイムアップフラグのクリアと処理1を行う。ま
た、逆にタイムアップフラグ12がセットされていなけ
れば、40ms未経過ということでタイムアップフラグ
12のクリアと処理1とは、行われない。
【0049】本実施の形態におけるソフトウェアタイマ
のカウント方法では、図2の処理ステップS6に示すよ
うに、ソフトウェアタイマ10のタイムアップの判定処
理を行わなくてもタイムアップフラグ12がセットさ
れ、またカウント許可フラグ13のクリア処理を行わな
くてもタイムアップ時にカウント禁止状態(クリア)と
なる。
【0050】上述したこれまでのソフトウェアタイマの
カウント方法の説明では、8ビットマイクロコンピュー
タの場合を例に挙げてきたが、マイクロコンピュータの
CPUのビット数が4ビット,16ビット,32ビット
などとなった場合でも同様の方法が適用可能なことはい
うまでもない。
【0051】かかるソフトウェアタイマのカウント方法
を用いた応用例では、前述した従来技術で説明した方法
とまったく変わりない。すなわち、これは、従来技術に
おける図6(a)のメインモジュールおよび図6(b)
の処理モジュール2と同様の処理アルゴリズムでソフト
ウェアタイマが実現できるということである。また、同
じ具体例として、エアコンのシステムに適用した場合で
も、従来技術で説明した図7と同様の処理アルゴリズム
でソフトウェアタイマの応用が可能である。
【0052】さらに、本実施の形態では、カウンタ11
のすぐ上のビットにタイムアップフラグ12を、このタ
イムアップフラグ12のすぐ上のビットにカウント許可
フラグ13を割り付けたが、タイムアップフラグ12と
カウント許可フラグ13の割り付け方を上下逆にした場
合でも、このフラグを参照する側〔例えば、図3(b)
の処理モジュール1のソフトウェアタイマ初期設定処
理、図3(d)の処理モジュール1〕で、タイムアップ
フラグ12とカウント許可フラグ13の論理(1/0)
を逆に解釈して使用すれば、本実施の形態におけるの図
2および図3とまったく同様の手順でソフトウェアタイ
マの制御が可能である。
【0053】しかも、本実施の形態では、カウンタ領域
11〜13をダウンカウントする例を述べたが、アップ
カウントとした場合でも図3の処理フローと同様の手順
でソフトウェアタイマの制御が可能である。この場合
は、カウンタ領域11〜13にカウントしたい値の2の
補数(カウントしたい値をビット反転して+1した値)
を初期設定すればよい。例えば、1をカウントしたい場
合は、カウンタ領域11〜13にFFH(16進数でF
F)を設定すれば、1回カウントしたときにカウンタ領
域11〜13の値は00Hとなり、図2のステップS6
に示すように、タイムアップフラグ12の論理(1/
0)が逆の状態となる。この場合は、このフラグを参照
する側〔例えば、図3(d)の処理モジュール1〕で、
タイムアップフラグ12の論理(1/0)を逆に解釈し
て使用すればよい。このとき、図2のステップS6にお
けるカウンタ11は、ダウンカウントした場合とアップ
カウントした場合とでタイムアップ時の値が異なるが、
タイムアップ時のステップS6におけるカウンタ11の
値は使用しないため、まったく問題がない。
【0054】このように、タイムアップフラグ12とカ
ウント許可フラグ13をカウンタ11の上位ビットに配
置しておきさえすれば、タイムアップフラグ12とカウ
ント許可フラグ13の配置順については、本実施の形態
のように配置する場合と、上下逆に配置する場合との2
通りが考えられる。また、カウンタ領域11〜13のカ
ウント方法については、本実施例のようにダウンカウン
トする場合と、アップカウントする場合との2通りの実
現が可能である。
【0055】
【発明の効果】以上説明したように、本発明のタイマカ
ウンタのカウント方法は、あらかじめ定められた所定の
値をカウントしたとき、記憶領域上に設けられたフラグ
領域にフラグを設定するにあたり、複数のフラグ領域と
タイマカウンタ領域を連続した記憶領域に設け且つこれ
らフラグ領域のビットデータをタイマカウンタ領域のビ
ットデータの上位ビット領域に設けることにより、カウ
ント時にフラグとタイマカウンタのビットデータとを連
続したタイマカウンタ領域としてカウントアップまたは
カウントダウン処理することができるので、従来のソフ
トウェアタイマのカウンタを減算するたびに行っていた
タイムアップの判定やタイムアップ時に行っていたタイ
ムアップフラグのセットおよびカウント許可フラグのク
リア処理を不要にでき、タイムアップ時の処理を従来の
半分以下にすることができるという効果がある。すなわ
ち、マイコンの命令にして5命令を2命令にでき、処理
時間を半分以下にすることができる。要するに、本発明
によれば、従来例で問題となっていたソフトウェアタイ
マ以外の割り込み処理の受け付けの遅れを半分以下に低
減できることになる。
【0056】例えば、具体例として挙げたエアコン室内
機および室外機のファンモータ制御システムにおいて、
ソフトウェアタイマをカウントするタイマ割り込み処理
の開始直後に発生した位相信号の割り込み処理受け付け
の遅れ時間が、従来は300μsであったのに対し、本
発明では150μs以下にできるため、モータの回転速
度制御の精度を数段向上させることができる。このこと
は、モータの位相信号入力の周期(モータの回転周期)
が1msである場合、従来方法では実際の位相信号入力
の周期に対するソフトウェアでの位相信号検知タイミン
グのずれ(遅れ)の比率が30%程度(約300μs÷
1ms)であったのに対し、本発明では15%以下(≒
150μs÷1ms)に低減されることになる。したが
って、モータの回転速度制御の精度は約1.2倍向上す
る。
【0057】また、本発明のカウント方法は、タイマの
個数が多ければ多いほど、システム全体の処理時間に対
するソフトウェアタイマのカウント処理時間の占める比
率の低減を図ることができるので、その分CPUの空き
時間を増加することができるという効果がある。すなわ
ち、システム全体の処理時間に余裕ができ、その時間を
他の処理に割り当てることができる。
【0058】さらに、本発明は、前述したように命令数
を従来の半分以下にできるため、ソフトウェアタイマカ
ウント処理のプログラムサイズも従来の半分以下にでき
るという効果もある。
【図面の簡単な説明】
【図1】本発明の一実施の形態を説明するためのソフト
ウェアタイマのタイマエリア構成図である。
【図2】図1におけるソフトウェアタイマを用いたカウ
ント動作説明図である。
【図3】図1のカウント動作を説明するためのメイン処
理,処理モジュール1のソフトウェアタイマ初期設定処
理,内蔵タイマ割り込み処理,処理モジュール1の処理
を表わすフロー図である。
【図4】従来の内蔵タイマカウンタによる任意時間のカ
ウント処理におけるメインモジュール処理およびタイマ
割り込み処理のフロー図である。
【図5】従来の内蔵タイマカウンタによる任意時間のカ
ウント処理におけるメインモジュール処理フロー図であ
る。
【図6】従来のソフトウェアタイマを用いて任意時間の
カウント処理を行う際のメインモジュール処理,処理モ
ジュール2の処理および内蔵タイマ割り込みモジュール
処理を表わすフロー図である。
【図7】従来のソフトウェアタイマによる任意時間のカ
ウントをエアコンシステムに応用した場合のメインモジ
ュール処理,室温制御モジュール処理おおよび内蔵タイ
マ割り込みモジュール処理を表わすフロー図である。
【図8】従来のソフトウェアタイマ1個のタイマエリア
構成図である。
【図9】図8におけるソフトウェアタイマを用いたカウ
ント動作説明図である。
【図10】図9のカウント動作を説明するためのメイン
処理,処理モジュール3のソフトウェアタイマ初期設定
処理,内蔵タイマ割り込み処理,処理モジュール3の処
理を表わすフロー図である。
【符号の説明】
10 ソフトウェアタイマ 11 カウンタ 12 タイムアップフラグ 13 カウント許可フラグ

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 所定の周期で割り込みを発生し、その割
    り込みによって記憶領域上に設けられたタイマカウンタ
    領域の値をカウントアップまたはカウントダウン処理す
    ることにより時間をカウントするにあたり、あらかじめ
    定められた所定の値をカウントしたとき、前記記憶領域
    上に設けられたフラグ領域にフラグを設定するタイマカ
    ウンタのカウント方法において、前記フラグ領域と前記
    タイマカウンタ領域を連続した記憶領域に設けるととも
    に、前記フラグ領域のビットデータを前記タイマカウン
    タ領域のビットデータの上位ビット領域に設け、カウン
    ト時に前記フラグと前記タイマカウンタのビットデータ
    とを連続したタイマカウンタ領域としてカウントアップ
    またはカウントダウン処理することを特徴とするタイマ
    カウンタのカウント方法。
  2. 【請求項2】 前記フラグ領域の1ビットは、前記カウ
    ンタ領域の上位ビットにタイムアップフラグとして設け
    た請求項1記載のタイマカウンタのカウント方法。
  3. 【請求項3】 前記フラグ領域の1ビットは、前記カウ
    ンタ領域の上位ビットにカウント許可フラグとして設け
    た請求項1記載のタイマカウンタのカウント方法。
JP7311257A 1995-11-29 1995-11-29 タイマカウンタのカウント方法 Expired - Lifetime JP2984591B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7311257A JP2984591B2 (ja) 1995-11-29 1995-11-29 タイマカウンタのカウント方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7311257A JP2984591B2 (ja) 1995-11-29 1995-11-29 タイマカウンタのカウント方法

Publications (2)

Publication Number Publication Date
JPH09153790A true JPH09153790A (ja) 1997-06-10
JP2984591B2 JP2984591B2 (ja) 1999-11-29

Family

ID=18014975

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7311257A Expired - Lifetime JP2984591B2 (ja) 1995-11-29 1995-11-29 タイマカウンタのカウント方法

Country Status (1)

Country Link
JP (1) JP2984591B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091479A (ja) * 2014-11-11 2016-05-23 株式会社明電舎 カウンタユニット
KR20180137711A (ko) * 2017-06-19 2018-12-28 현대오트론 주식회사 마이크로 프로세서 유닛을 감시하는 감시 장치, 그것의 포함하는 시스템 및 동작 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016091479A (ja) * 2014-11-11 2016-05-23 株式会社明電舎 カウンタユニット
KR20180137711A (ko) * 2017-06-19 2018-12-28 현대오트론 주식회사 마이크로 프로세서 유닛을 감시하는 감시 장치, 그것의 포함하는 시스템 및 동작 방법

Also Published As

Publication number Publication date
JP2984591B2 (ja) 1999-11-29

Similar Documents

Publication Publication Date Title
JP5528568B2 (ja) 並列プログラム制御
US6145027A (en) DMA controller with split channel transfer capability and FIFO buffering allowing transmit channel to get ahead of corresponding receive channel by preselected number of elements
WO2007062256A2 (en) Microcontroller based flash memory digital controller system
EP0355462B1 (en) Dedicated service processor with inter-channel communication features
JP2000066963A (ja) マイコン用メモリの診断装置
JP3988636B2 (ja) マイクロコンピュータ及び車両用ecu
JPH09153790A (ja) タイマカウンタのカウント方法
WO2005013130A1 (ja) リアルタイム制御システム
JP3214469B2 (ja) マイクロコンピュータによるフラッシュeepromの書き込み制御方法及び装置
JP2677719B2 (ja) 情報処理装置
JP2000092885A (ja) Dcモータ制御回路
GB2321325A (en) Control unit with timers
KR100209595B1 (ko) 인터럽트 발생장치 및 발생방법
JPH10187790A (ja) 論理回路シミュレータ
US20040015741A1 (en) Watchdog device operation
JPH06324861A (ja) Cpu制御システム及び制御方法
JP2000066917A (ja) 定期的診断制御方法および定期的診断制御システム
JP4062478B2 (ja) デバイスアクセス方法
JP2877465B2 (ja) メモリバンクへのデータ転送制御方式
JP2010033475A (ja) 電子制御装置
JPH03134732A (ja) バッファ制御装置
JPH04242413A (ja) マイクロコンピュータ
JP2000181583A (ja) 瞬断検出装置
JP2002327976A (ja) 空気調和システムの制御方法
JPH03241451A (ja) アルチプロセッサの制御方式

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990907