アプリ版:「スタンプのみでお礼する」機能のリリースについて

PIC16F84Aの勉強中です。
CLRWDTの動作に不明点があり、どなたか教えて下さい。

<質問1>
1.WDTに割り当てた分周比がCLRWDTでクリアされません。なぜでしょうか
■概略
WDT_ON、ポストスケーラをWDTに割り当て、スケール値は110(1:64)で用いています。
CLRWDTの作用は、データシートやその他の文献を見ると
(1)WDTのクリア(カウンターが0になる?←私の考えです)
(2)ポストスケーラのクリア(スケール設定値が000になる?←私の考えです)
(3)TO―>1
(4)PD―>1
の4つが記載されておりますが、(2)だけが確認できません。
クリアされるとすれば、CLRWDT文の次には必ず「スケール値再設定」の処理が必要となるはずですが、処置しなくても試作機は無事動いております。
MPLAB(Ver6.50)のシミュレーション(WATCHでOPTIONレジスタ値を観察)でも値は動きません。もちろんCLRWDT文を外せば試作機でもシミュレーションでもリセットがかかるので、WDTは確実にONしています。
CLRWDT文の使い方には何か条件があるのでしょうか。

<質問2>
2.SLEEP in時にもWDTがクリアされるはずですが、上記(2)も実行されるのでしょうか。
■概略
WDTでWAKEUPさせるのですが、その間隔が約1秒でして、どうも実行されていない様子なのです。

<質問3>
3.スケーラ値のデフォルトは111なのでしょうか。
■概略
MPLABのシミュレーション(WATCHでOPTIONレジスタ値を観察)では、最初はいつも111からスタートしているのでそう思いました。(設定文通過後はきちんと設定値に変化します)
もしデフォルト(=クリア値?)が111ならば、プログラムでわざわざ110にしなくても111でも問題ないので設定無しにしようかなと。更に、CLRWDT文の次の「スケール値再設定」処置が省略できるのでは・・・と考えております。(もともと必要ない\(◎o◎)/?)

以上、よろしくお願い致します。

A 回答 (2件)

>データシート記載の「CLRWDT ・・・Clear postscaler・・・」の意味するところが今だ不明であり、喉に小骨なのです。


ポストスケーラ(プリスケーラ)のカウント値を0(クリア)にしますよって意味です。
それとも、ポストスケーラと言う言葉自体が意味不明なんでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2007/11/13 20:31

すでに遅いかも知れませんが書いてみます。


全体的にWDTの動作をどうも勘違いしていると思います。

<質問1>
CLRWDTでクリアされるのは、プリスケーラのカウント値ですので動作として正しく、これ以外の動作はありません。
毎回プリスケーラのスケール値(分周比)がクリアされてしまったら、WDTとして無駄な手間の多い処理になるので歓迎されないと思いますが、そうしたい意図は何でしょうか?
そもそも、このOPTION_REG自体がCPU側から書かれるのはリセット時だけだと思うんですけど。

<質問2>
データシートを見る限り、同じ動作をするはずです。
コンフィギュレーションでWDTEがイネーブルになっていないのでは無いでしょうか?

<質問3>
これも「リセットによる値」としてデータシートに書かれていて111となっています。
しかし、PICの仕様が変わったり、PICのシリーズ全般を通して普遍かは疑問ですので初期化することをお勧めします。
明確に初期化する事も後々プログラムを見たときに(リセット後の状態)を調査する手間が省ける上に、何の機能をどう使っているかの説明になるので良いプログラマに成りたいと思うのなら避けましょう。

この回答への補足

ご回答者様、もしくは知っておられる方からの更なるご助言頂ければもっとうれしいのですが、データシート記載の「CLRWDT ・・・Clear postscaler・・・」の意味するところが今だ不明であり、喉に小骨なのです。
プログラムする皆さんはどのように解決されたのでしょう?
他の日本語文献を調べたところ同様の記載も多数見受けられた事から、これは誤記?とは思えなくて。
 今一度お付き合い願えれば幸いです。

補足日時:2007/11/12 19:31
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
はっきりと「これ以外の動作はありません」とご助言頂き、安心して進む事が出来ます。

私としても手間な処理であり、できれば「そうしたく無い」考えでした。
それに沿う方向でのご回答を頂き、ちょっとうれしいです。

お礼日時:2007/11/12 19:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!