teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]


新着順:81/789 記事一覧表示 | 《前のページ | 次のページ》

Re: キャプチャの値が6%ほどずれるのは?

 投稿者:matsu  投稿日:2015年 1月 7日(水)02時51分30秒
  通報 返信・引用
  > No.714[元記事へ]

nekosanさんへのお返事です。

これは,pic独特の問題でしょうか?
下のプログラムですが,キャプチャをスタートする関数なんですけど,
1msのウェイトを入れてからでないと,なぜかリセットがかかってしまいます。

void startCapture(void)
{
    IFS0bits.IC1IF = 0; // Clear the IC1 interrupt status flag
    IPC0bits.IC1IP = 1; // Set module interrupt priority as 1
    waitms(1);//ないとリセットがかかる場合がある
    IEC0bits.IC1IE = 1; // Enable IC1 interrupts
}

希にかからないこともあるんですが・・・。
おそらく,これより先に,キャプチャ関係のタイマ等の初期化を終えて
いるので,interrupt status flagが立ってしまっていて,
0を書き込んだ後,少し待たないと実際に0にならないのかな・・・,
と考えました。可能性ありますでしょうか。

だとすると,同様にレジスタ書き込みを行っているので,

> また、プログラム上の処理順序によって、先に設定
> しておいたSFRが、後から別のレジスタを設定した
> ことによって、意図しない値に上書きされたりして
> ないでしょうかね?

って可能性もありそうな気がします・・・。
 
 
》記事一覧表示

新着順:81/789 《前のページ | 次のページ》
/789