(57)【特許請求の範囲】
【請求項１】
手動部材の操作でリセット信号を出力するリセット手段と、
前記リセット手段によりリセットされる第１のマイクロコンピュータと、
前記リセット手段ではリセットされず、処理を続行可能な第２のマイクロコンピュータと、
前記第２のマイクロコンピュータを不作動とする制御手段とを備え、
前記制御手段は、前記第１のマイクロコンピュータと前記第２のマイクロコンピュータとの出力により前記第２のマイクロコンピュータを不作動とし、前記第２のマイクロコンピュータからの出力がなくとも、前記第２のマイクロコンピュータからの応答がないと判断した前記第１のマイクロコンピュータの出力により前記第２のマイクロコンピュータを不作動とすることを特徴とするマイクロコンピュータを使用する装置の制御システム。
【請求項２】
前記マイクロコンピュータを使用する装置は、カメラであることを特徴とする請求項１に記載のマイクロコンピュータを使用する装置の制御システム。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、マイクロコンピュータを使用する装置の制御システムに関するものである。
【０００２】
【従来の技術】
従来、マイクロコンピュータを使用した装置は電源制御もマイクロコンピュータが行うようになっていた。
【０００３】
【発明が解決しようとする課題】
従来、マイクロコンピュータを使用した装置はマイクロコンピュータが暴走すると電源も切れなくなるおそれがあった。
本発明はこのような従来の問題点に鑑みてなされたもので、万が一マイクロコンピュータが暴走した場合でも復帰が可能な装置の電源制御方法の提供を目的とする。
【０００４】
【課題を解決するための手段】
上記目的のために本発明では、手動部材の操作でリセット信号を出力するリセット手段と、前記リセット手段によりリセットされる第１のマイクロコンピュータと、前記リセット手段ではリセットされず、処理を続行可能な第２のマイクロコンピュータと、前記第２のマイクロコンピュータを不作動とする制御手段とを設け、前記制御手段が、第１のマイクロコンピュータと第２のマイクロコンピュータとの出力により第２のマイクロコンピュータを不作動とし、第２のマイクロコンピュータからの出力がなくとも第２のマイクロコンピュータからの応答がないと判断した第１のマイクロコンピュータの出力により第２のマイクロコンピュータを不作動とするように構成した。
また、第１のマイクロコンピュータと、カメラのシャッタレリーズシーケンスにおいて少なくともシャッタ制御を行う第２のマイクロコンピュータとを備え、前記第２のマイクロコンピュータは、前記シャッタレリーズシーケンスとは別に定期的な信号（Ｐ２４）を出力し、前記第１のマイクロコンピュータは、前記第２のマイクロコンピュータから出力された前記信号に応じて該第２のマイクロコンピュータを不作動とするように構成した。
【０００５】
【作用】
本発明では第１のマイクロコンピュータが暴走しても、操作する者が手動部材の操作でリセット手段で復帰可能であり、第２のマイクロコンピュータが暴走しても第１のマイクロコンピュータでリセット可能であり、不用意にリセット手段が働いても第２のマイクロコンピュータの動作を停止しない。
【０００６】
【実施例】
図１は本発明による実施例のブロック図である。
１、２は、マイクロコンピュータであり、以下ＭＣＵ１、ＭＣＵ２という。  リセット回路３はＭＣＵ１に対してリセットを行うものであり、電池が挿入されたＶｄｄ端子立ち上がりと、メインスイッチＳＷ０のオン位置からオフ位置に変わるとき、ＭＣＵ１のリセット入力端子をＬにしてＭＣＵ１をリセットさせる働きをする。
【０００７】
４は、ＤＣ／ＤＣコンバータである。電池Ｅの電源電圧が入力端子４ａとＧＮＤ端子４ｄの間に印加されたとき、コントロール端子４ｃの入力がＬの時には出力端子４ｂに所定のＶｃｃ電圧（例えば５［Ｖ］）を発生し、入力がＨの時にはＶｃｃ出力は０となる。ダイオードＤ１とダイオードＤ２は直列に接続され、電池電圧より２ダイオード分低い電圧を発生する。
【０００８】
一方、出力端子４ｂにアノード側が接続されるショットキーダイオードＤ３のカソード側にはほぼＶｃｃに等しい電圧が発生する。よって、ダイオードＤ３とダイオードＤ２の交点に発生する電圧Ｖｄｄは、電池電圧より２ダイオード分低下した電圧とＶｃｃ電圧の高い方の電圧となる。
ＮＡＮＤゲート５には、ＭＣＵ１のＰ１１出力とＮＡＮＤゲート６の出力が入力し、出力端子はＤＣ／ＤＣコンバータ４の端子４ｃに接続される。ＮＡＮＤゲート６にはＭＣＵ１のＰ１２端子とＭＣＵ２のＰ２１端子が接続される。なお、ＭＣＵ２のＰ２２端子は入力端子であり、ダイオードＤ４を介してＭＣＵ１のＰ１２端子に接続されＰ１２端子の状態の読み取りに用いられる。
【０００９】
端子Ｐ１１がＬであれば、ＮＡＮＤゲート６に関わらずＮＡＮＤ５の出力はＨとなる。逆に、Ｐ１２端子とＰ２１端子が共にＨであれば、ＮＡＮＤ６の出力はＬとなり、Ｐ１１端子に関わらずにＮＡＮＤ５の出力はＨとなる。また、Ｐ１２端子かＰ２１端子の少なくとも一方がＬであればＮＡＮＤゲート６の出力はＨとなり、Ｐ１１端子がＨであれば、ＮＡＮＤ５の出力はＬとなる。よって、このＮＡＮＤゲート５とＮＡＮＤゲート６によって表１の真理値表が得られる。
【００１０】
ＮＡＮＤ５の出力がＬの時、ＤＣ／ＤＣコンバータ４はオフとなりＶｃｃの印加がなくなる。すなわち、Ｐ１１端子は強制オフ信号として働き、状態Ａは強制オフ状態を示す。強制オフ信号が働かないとき、Ｐ１２端子またはＰ２１端子のＬはＮＡＮＤ５の出力をＬにしてＤＣ／ＤＣコンバータ４をオンにさせる。Ｐ１２端子またはＰ２１端子はパワーホールド信号として働き、状態Ｃはパワーホールド状態を示す。パワーホールド信号がともにＨの時、ＮＡＮＤ５の出力がＨとなってＤＣ／ＤＣコンバータ４がオフするのは通常オフ状態である。
【００１１】
【表１】
0003773548.tif 000002
【００１２】
ＳＷ０はメインスイッチであり、オフ位置の時にはＧＮＤ側に接続され、オン位置の時にはＶｄｄ側に接続され、その出力はリセット手段３とＭＣＵ１に接続される。
ＳＷ１０からＳＷ１７は設定用のスイッチであり、ＭＣＵ１の入力ポートＩ１０からＩ１７に接続する。ＳＷ２はレリーズスイッチであり、ＭＣＵ２の端子Ｉ２に接続される。測光回路７は、ＭＣＵ２のＡ／Ｄ変換入力Ａ１に接続する。ＭＣＵ２のインターフェイス回路８は、ＭＣＵ２のポートＰ３に接続し、Ｐ３によって不図示のモータやシャッタマグネットの駆動を行う。表示制御回路９は、ＭＣＵ２のポートＰ４に接続し、Ｐ４出力によりＬＣＤ表示を行う。
【００１３】
図２（ａ）は、ＭＣＵ１のメインルーチンのフローチャートである。ＭＣＵ１は電池が装填されていると、電池が装填されて電源電圧Ｖｄｄが印加されたとき、メインスイッチＳＷ０がオン位置からオフ位置に変わると、リセット回路３からリセット信号が出て、ＭＣＵ１はステップ＃１からの処理を始める。また、リセット時点でＭＣＵ１の全出力端子はＨになる。
【００１４】
ステップ＃１において、メモリやレジスタなどの初期設定を行い、ステップ＃２へ進む。
ステップ＃２において、端子Ｐ１４によりＭＣＵ２のＰ２３（ホールド要求信号）がＬかどうかを調べ、Ｌであればステップ＃３ヘ進み、Ｈであればステップ＃６へ進む。
【００１５】
ステップ＃３において、入力端子Ｉ０によって、メインスイッチＳＷ０がオン位置かオフ位置かを調べ、オンであればステップ＃４ヘ進み、オフであればステップ＃６へ進む。
ステップ＃４ヘ進み、端子Ｐ１２（パワーホールド信号）をＬにすると、表１のように、ＤＣ／ＤＣコンバータ４のＶｃｃ出力が発生する。
【００１６】
そして、ステップ＃５において、端子Ｐ１３によって、ＭＣＵ２に対してリセット出力する。
ステップ＃６において、入力端子Ｉ１０からＩ１７によって、ＳＷ１０からＳＷ１７の状態を入力する。この状態は図２（ｂ）の割り込み処理ルーチンでＭＣＵ２へ転送する。
【００１７】
ステップ＃７において、ＭＣＵ２との通信があったかどうかを調べ、通信があればステップ＃８ヘ進み、通信がなければステップ＃１０へ進む。
ステップ＃８において、ＭＣＵ２から転送されたパワーオフフラグが１かどうかを調べ、０であればステップ＃６へ戻り、１であればステップ＃９へ進む。
ステップ＃９において、端子Ｐ２１（パワーホールド信号）をＨにする。
【００１８】
ステップ＃１０において、ウォッチドックタイマーがオーバーフローしているかどうかを調べ、オーバーフローしていればステップ＃１１ヘ進み、オーバーフローしていなければステップ＃６へ戻る。
ステップ＃１１において、端子Ｐ１１（強制オフ信号）をＬにすると、表１のように、ＤＣ／ＤＣコンバータ４のＶｃｃ出力は強制的にオフする。
【００１９】
ステップ＃１２において、メインスイッチのオン／オフを調べ、オンであればステップ＃４へ戻り、オフであれば、ステップ＃１３へ進む。
ステップ＃１３において、ＭＣＵ１はホルト状態にする。ホルト状態においては、ＭＣＵ１のクロックは停止し、消費電流が押さえられる。ＤＣ／ＤＣコンバータ４もオフすれば、一番低消費の状態となる。このとき、Ｉ０、および、Ｉ１０からＩ１７のキーオンウェイクアップによる割り込みのみが有効になる。
【００２０】
ステップ＃１４において、Ｉ０、または、Ｉ１０からＩ１７のキーオンウェイクアップによる割り込みを待つ。設定部材が操作されてＳＷ０、ないしは、ＳＷ１０からＳＷ１７のいずれかのスイッチがオンとなると、Ｉ０、ないしは、Ｉ１０からＩ１７の対応する端子がＬとなって起動割り込みがかかり、ステップ＃２へ戻る。
【００２１】
図２（ｂ）は、ＭＣＵ１の割り込み処理ルーチンのフローチャートである。
ＭＣＵ２が通信の起動をかけるとき、端子Ｐ２４をＬにすると、ＭＣＵ１の割り込み入力端子ＩＮＴ１がＬとなって、ＭＣＵ１は割り込み処理ルーチンに入る。
ステップ＃２１において、シリアル出力端子ＳＯ１、シリアル入力端子ＳＩ１、シリアルクロック端子ＳＣＬＫ１によるシリアル通信を行う。このとき、ＭＣＵ１からＭＣＵ２へはステップ＃６で入力したＳＷ１０からＳＷ１７の状態を伝え、ＭＣＵ２からＭＣＵ１へはパワーオフフラグのようなフラグ情報が伝えられる。
【００２２】
ステップ＃２２において、ウォッチドッグタイマーをクリアする。すなわち、正常に通信が行われていれば、ステップ＃１０からステップ＃１１ヘ進みＶｃｃの強制オフが行われることはない。
図３は、ＭＣＵ２のメインルーチンのフローチャートである。
ＤＣ／ＤＣコンバータ４がオンとなってＶｃｃが印加され、ＭＣＵ１のＰ１３によるリセット出力がＭＣＵ２のリセット入力ＲＥＳＥＴ２に入ると、ＭＣＵ２は処理を開始する。
【００２３】
ステップ＃３１において、初期設定を行い、ステップ＃３２において、端子Ｐ２１（パワーホールド信号）をＬにすると、ＭＣＵ１が強制オフしない限り、パワーホールド可能となる。
ステップ＃３３において、Ａ／Ｄ変換入力端子Ａ１から測光回路７の出力のＡ／Ｄ変換値を求める。
【００２４】
ステップ＃３４において、パワーオフ条件の判別を行い、パワーオフ条件を満足すればステップ＃３５へ進み、パワーオフ条件を満足しない場合にはステップ＃３６へ進む。ここで、パワーオフ条件とは、次の２点である。１）メインスイッチＳＷ０がオフ位置になった。２）設定スイッチＳＷ１０〜ＳＷ１７の何れも操作されなくなってから一定時間Ｔｘ以上経過した。
【００２５】
ステップ＃３５において、パワーオフフラグを１にしてＭＣＵ１に対するパワーオフ指示をセットする。
ステップ＃３６において、端子Ｐ２４をＬにして、ＭＣＵ１とのシリアル通信を行う。シリアル出力端子ＳＯ２、シリアル入力端子ＳＩ２、シリアルクロック端子ＳＣＬＫ２による公知のシリアル通信を行う。このとき、ＭＣＵ１からＭＣＵ２へはステップ＃６で入力したＳＷ１０からＳＷ１７の状態を伝え、ＭＣＵ２からＭＣＵ１へはパワーオフフラグのようなフラグ情報が伝えられる。
【００２６】
ステップ＃３７において、ステップ＃３６でＭＣＵ１から得たスイッチ情報を加工すると共にステップ＃３３で求めたＡ／Ｄ変換値によってアペックス演算などの演算処理を行う。
ステップ＃３８において、ポートＰ４を駆動し、ステップ＃３７で求めた表示出力を表示回路９へ転送し表示を可能にする。
【００２７】
ステップ＃３９において、パワーオフ指示した後かどうかのチェックを行い、その場合にはステップ＃４０へ進み、そうでない場合にはステップ＃３３へ戻り、以上の処理を繰り返す。
ステップ＃４０へ進むと、端子Ｐ２１（パワーホールド信号）をＨにする。ＭＣＵ１のパワーホールド信号（Ｐ１２）もＨになれば、表１の示すごとく、ＤＣ／ＤＣコンバータ４のＶｃｃ出力はオフとなる。
【００２８】
図４は、ＭＣＵ２のタイマー割り込み処理ルーチンのフローチャートである。１［ｍｓ］のタイマー割り込みによって、図３のメインルーチンの実行途中で本ルーチンの処理に切り替わる。
ステップ＃５１において、レリーズスイッチＳＷ２１のオン／オフを調べ、オフであればそのままリターンしてメインルーチンの処理に戻り、オンであればステップ＃５２へ進み、レリーズシーケンスが開始される。
【００２９】
ステップ＃５２において、端子Ｐ２３（ホールド要求信号）をＨにする。そして、ステップ＃５３において、端子Ｐ３により回路８を駆動し、不図示のシャッタの先幕と後幕を係止するＭｇに通電し、電気系によるシャッタの係止を行う。
ステップ＃５４において、同様に回路８を駆動し不図示のモータを逆転させ、ミラーアップを行わせる。この間絞り制御なども行われる。
【００３０】
ステップ＃５５において、図５のシャッタ制御ルーチンをサブルーチンコールし、図３のステップ＃３７において求めたシャッタ速度に制御する。
ステップ＃５６において、回路８を駆動し、モータを正転させてミラーダウン行程を行う。ステップ＃５７において、一連のレリーズシーケンスを終了すると、端子Ｐ２３（ホールド要求信号）をＬにしてリターンする。
【００３１】
図５は、図４のステップ＃５５からサブルーチンコールされるシャッタ制御ルーチンのフローチャートである。
ステップ＃７１において、シャッタ制御途中のＭＣＵ１との通信間隔を定める１［ｓ］タイマーをセットする。
ステップ＃７２において、回路８を駆動して先幕マグネットをオフさせ、シャッタの先幕を走行させる。
【００３２】
ステップ＃７３において、図３のステップ＃３７において求めたシャッタ秒時ｔａに達したかどうかの判別を行い、達した場合にはステップ＃７４へ進み、達しない場合にはステップ＃７５へ進む。
ステップ＃７４へ進むと、回路８を駆動して後幕マグネットをオフさせ、シャッタ後幕の走行を行い、シャッタ制御を終了させる。
【００３３】
ステップ＃７５において、メインスイッチがオフしたかどうかを調べる。メインスイッチＳＷ０はＭＣＵ２には直接接続しないが、メインスイッチがオフ位置にくるとＭＣＵ１はリセット回路３によってリセットされ、ＭＣＵ１の端子Ｐ１２がＬからＨになるので、ＭＣＵ２の端子Ｐ２２によりモニター可能となる。メインスイッチがオフした場合にはステップ＃７６へ進み、オンのままの場合にはステップ＃７７へ進む。
【００３４】
ステップ＃７６において、パワーオフフラグを１にしてパワーオフ指示をセットしてステップ＃７４へ進む。
ステップ＃７７において、１［ｓ］タイマーのオーバーフローを判別し、オーバーフローした場合にはステップ＃７８へ進み、オーバーフローしない場合にはステップ＃７３へ戻る。
【００３５】
ステップ＃７８へ進むと、ＭＣＵ１との通信を行う。このとき、必ずしも図３のステップ＃３６のように完全なシリアル通信を行わなくともよい。少なくとも、Ｐ２４端子によって、ＭＣＵ１に対して通信割り込みをかければＭＣＵ１のウォッチドッグタイマーをクリアできるのでＶｃｃの強制オフは避けることができる。
【００３６】
ステップ＃７９において、１［ｓ］タイマーをクリアしてステップ＃７３へ戻る。
図６は、電池挿入でＭＣＵ１がリセットされてから始まるタイミングチャートである。
ｔ０時点で電池が挿入されると、リセット回路３はｔ１時点までＭＣＵ１のリセット端子をＬにしてリセットする。すると、ＭＣＵ１は図２（ａ）の処理をスタートする。
【００３７】
ステップ＃１において初期設定を行うと、この時点のホールド要求信号（Ｐ２３）はＬなので、ステップ＃２の判別はステップ＃３へ進む。メインスイッチＳＷ０はオンなのでステップ＃４へ進み、ｔ２時点でＶｃｃホールド信号（Ｐ１２）をＬにするとＤＣ／ＤＣコンバータ４がオンになって、Ｖｃｃ出力が発生する。続くステップ＃５において、ＭＣＵ２に対するリセット出力（Ｐ１３）をＬにする。
【００３８】
ｔ３時点でＭＣＵ２のリセット端子がＨになると、ＭＣＵ２は図３のメインルーチンの処理を開始する。ステップ＃３１において初期設定を行い、ステップ＃３２において、Ｖｃｃホールド信号（Ｐ２１）をＬにする（ｔ４時点）。
ＭＣＵ１はＭＣＵ２をリセットした後、ステップ＃６の入力処理を行い、ステップ＃７で通信の有無を判別するが、すぐに通信が行われるわけではないので、ステップ＃１０へ進む。ウォッチドックタイマーはすぐにオーバーフローはしないのでステップ＃６に戻り、以上の処理を繰り返す。
【００３９】
ＭＣＵ２はステップ＃３３の入力処理を行い、ステップ＃３４でパワーオフ条件の判別を行うが、メインスイッチがオンで設定スイッチが操作されなくなってからＴｘ時間以上経過していないのでステップ＃３６へ進み、Ｐ２４をＬにしてＭＣＵ１との通信を行う。すると、ＭＣＵ１のＩＮＴ１がＬになるので、ＭＣＵ１は図２（ｂ）の割り込み処理を始める。
【００４０】
ステップ＃２１において、通信処理を行い、ステップ＃２４において、ウォッチドッグタイマーをクリアしてリターンすると、ステップ＃６→ステップ＃７→ステップ＃１０→ステップ＃６のループはステップ＃７からステップ＃８へ進むことができるようになる。しかし、パワーオフフラグはまだ０なのでステップ＃８からステップ＃６へ戻る。
【００４１】
ＭＣＵ２はステップ＃３６の処理後、ステップ＃３７の演算処理を行い、ステップ＃３８の表示処理を行う。パワーオフ指示はまだの状態なので、ステップ＃３９からステップ＃３３に戻り、以上の処理を繰り返す。
例えば、設定スイッチＳＷ１１がオンになっていたのがオフになり（ｔ５時点）他の設定スイッチもオフの場合、その状態をＭＣＵ２がＭＣＵ１との通信から検知して、Ｔｘ時間以上経つとＭＣＵ２はステップ＃３４からステップ＃３５へ進み、パワーオフフラグを１にする（ｔ６時点）。すると、ステップ＃３６の通信処理でＭＣＵ２からＭＣＵ１へ伝達される。すると、ＭＣＵ１はステップ＃８の判別を行うとき、ステップ＃９へ進み、Ｖｃｃホールド信号（Ｐ１２）をＨにする（ｔ７時点）。
【００４２】
このときは、ＭＣＵ２によるパワーホールド信号（Ｐ２１）がＬなので表１のごとくＶｃｃは保持される。ＭＣＵ１はステップ＃１３へ進み、発振を停止してホルト状態になる。すると、起動割り込みがない限り次の処理を行わない。ＭＣＵ２はパワーオフ指示を出した後のステップ＃３９の判別ではステップ＃４０に進む。ここで、Ｖｃｃホールド信号（Ｐ２１）をＨにすると（ｔ８時点）、表１のＢの状態となりＶｃｃはオフ状態となりＭＣＵ２の電源電圧の印加が絶たれる。
【００４３】
図７は、設定スイッチのオンから始まるタイミングチャートである。
図７のｔ１１以前の状態は図６のｔ８以降の状態と同じである。設定スイッチＳＷ１１が再びオンになると、ＭＣＵ１のキーオンウェイクアップ機能が働き発振が始まり、ＭＣＵ１は再び処理を開始する。ステップ＃１４において、起動割り込みの判別は「あり」の状態なのでステップ＃２へ戻る。
【００４４】
すると、図６の場合と同様に、ステップ＃２→ステップ＃３→ステップ＃４→ステップ＃５の処理を行う。すなわち、ｔ１２時点でＰ１２がＬになると、Ｖｃｃがオンになり、ｔ１３時点までＰ１３でＭＣＵ２のリセットが行われる。
一方、ＭＣＵ２も同様に、ステップ＃３１からステップ＃３２の処理し、ＭＣＵ２によるパワーホールドがｔ１４時点で行われる。
【００４５】
設定スイッチＳＷ１１がオンされていてもメインスイッチＳＷ０がオフ位置となると、ＭＣＵ２のステップ＃３４における条件の判別はパワーオフと判別され、ステップ＃３５へ進む。ステップ＃３５において、ｔ１６時点でパワーオフフラグが１となり、ステップ＃３６の通信処理でＭＣＵ１へ伝達される。
ＭＣＵ１は、図６の場合と同様に、ステップ＃８からステップ＃９へ進み、ｔ１７時点でＰ１２端子をＨにする。一方、ＭＣＵ２はｔ１７時点でステップ＃３９からステップ＃４０へ進み、Ｐ２１端子をＨにする。この時点で表１のＢ状態となってＶｃｃがオフとなる。このとき、Ｐ１２端子とＰ２１端子の変化する時間が変わっても良い。Ｐ１２端子がＨになるのが遅くなれば、その時点でＶｃｃがオフとなるだけである。
【００４６】
図８は、レリーズシーケンス中にメインスイッチオフしたときの正常な場合のタイミングチャートである。レリーズされる前は、一定のタイミングで図３のステップ＃３６の通信ルーチンによりＰ２４がＬになる。レリーズスイッチがオンになると、割り込み処理ルーチンでステップ＃５１からステップ＃５２へ進み、ホールド要求信号（Ｐ２３）をＨにする（ｔ２１）。
【００４７】
そして、ステップ＃５５のシャッタ制御ルーチンへ進むと、図５の処理が行われる。シャッタ秒時が長い場合には、ステップ＃７１でセットした１［ｓ］タイマーの１［ｓ］毎のオーバーフローでステップ＃７７からステップ＃７８へ進み、Ｐ２４端子をＬにしてＭＣＵ１との通信を行う（ｔ２２）。長秒時を途中で解除しようとして、メインスイッチをオフすると（ｔ２３）、リセット回路３によるリセットがＭＣＵ１に対して行われる。
【００４８】
ｔ２４においてリセットが解除されると、ＭＣＵ１はステップ＃１において初期設定を行い、ステップ＃２へ進む。ステップ＃２において、Ｐ２３（ホールド要求信号）がＬかどうか調べるとき、Ｈなのでステップ＃６からの処理を行い、ＭＣＵ２に対するリセット処理は行わない。一方、メインスイッチオフによりＭＣＵ１がリセットされると（ｔ２３）、ＭＣＵ１の全端子がＨになるので、ＭＣＵ２は、Ｐ１２端子の変化で知ることができる。ＭＣＵ２はステップ＃７５からステップ＃７６へ進み、パワーオフフラグを１にして、ステップ＃７４へ進み、後幕Ｍｇをオフしてシャッタ制御ルーチンを終了する。
【００４９】
そして、図３のステップ＃５６においてモータ正転を行い、ステップ＃５７においてホールド要求信号をＬにし（ｔ２５）図４の割り込み処理ルーチンを終了する。  ＭＣＵ２は図３のメインルーチンに戻ると、ステップ＃３６でＭＣＵ１との通信を行い（ｔ２６）、パワーオフフラグの１を伝達する。その後、ＭＣＵ２はステップ＃３９からステップ＃４０へ進み、Ｐ２１（Ｖｃｃホールド信号）をＨにする。
【００５０】
ＭＣＵ１はステップ＃７からステップ＃８へ進むと、パワーオフフラグが１なのでステップ＃９へ進み、Ｐ１２（Ｖｃｃホールド信号）をＨにする。このとき、リセット後、Ｐ１２端子はＨのままであり、表１によりＭＣＵ２のＶｃｃオフ動作でＶｃｃがオフする（ｔ２７）。図９は、レリーズシーケンス中にメインスイッチオフしたときの異常な場合のタイミングチャートである。
【００５１】
図９のｔ３１、ｔ３２、ｔ３３は、それぞれ図８のｔ２１、ｔ２３、ｔ２４に対応する。  ＭＣＵ２が何らかの原因で暴走している場合には、端子Ｐ２４による定期的な信号が出なくなる。すると、ＭＣＵ１はステップ＃７からステップ＃１０へ進み、ウォッチドッグタイマーのオーバーフローの判別でオーバーフローとなり、ステップ＃１１へ進み、Ｐ１１（強制オフ信号）をＬにする。すると、Ｐ２１端子がＬのままでも表１に示す如く、Ｖｃｃがオフとなる（ｔ３４）。
【００５２】
一旦電源がオフとなるので、次にメインスイッチをオンにしたときには図６の如く正常な動作から始まる。  なお、ＭＣＵ１が暴走した場合には、メインスイッチのオフで常にリセットがかかるので復帰は可能である。その場合に、ＭＣＵ２が正常であれば、図８のごとくレリーズシーケンス動作などは円滑に継続される。
【００５３】
【発明の効果】
以上のように本発明によれば、一方のマイコンが暴走しても必ず回復可能であり、なおかつシーケンス途中でも動作の円滑な継続は可能となっている。本発明はカメラの形態で説明したが、マイコンを複数用い電池を用いたシステム場合には共通に適応できるはずである。
【図面の簡単な説明】
【図１】本発明による実施例のブロック図である。
【図２】（ａ）は、ＭＣＵ１のメインルーチンのフローチャートである。（ｂ）は、ＭＣＵ１の割り込み処理ルーチンのフローチャートである。
【図３】ＭＣＵ２のメインルーチンのフローチャートである。
【図４】ＭＣＵ２のタイマー割り込み処理ルーチンのフローチャートである。
【図５】図４のステップ＃５５からサブルーチンコールされるシャッタ制御ルーチンのフローチャートである。
【図６】メインスイッチのオンから始まるタイミングチャートである。
【図７】設定スイッチのオンから始まるタイミングチャートである。
【図８】レリーズシーケンス中にメインスイッチオフしたときの正常な場合のタイミングチャートである。
【図９】レリーズシーケンス中にメインスイッチオフしたときの異常な場合のタイミングチャートである。
【図１】
0003773548.tif 000003
【図２】
0003773548.tif 000004
【図３】
0003773548.tif 000005
【図４】
0003773548.tif 000006
【図５】
0003773548.tif 000007
【図６】
0003773548.tif 000008
【図７】
0003773548.tif 000009
【図８】
0003773548.tif 000010
【図９】
0003773548.tif 000011