[戻る]
過去ログ [ 0001 ]
過去ログ:     ワード検索: 条件: 表示:

タイトル
記事No
投稿日
投稿者
参照先
タイマに関すること
667
: 16/09/03-04:02
まるも

12f683を使用しています。8MHzのクロックを使用しています。アセンブラで書いています。
決まった時間に出力をON、OFFしたいのですがオシロスコープで測定するとずれてしまいます。決まった時間にONOFFをさせたいと思いタイマ0呼び出しラベルの中に以下のようなフローのプログラムを書きました。
【タイマ0呼び出し】

【タイマ0ラベルコール】

【タイマ0フラグクリア】

【TMR0を入れなおす】

【タイマカウント数値デクリメント】

【タイマカウント0ならラベルコール】→【0じゃないならRETURN】

【シーケンス@なら出力ON、シーケンスNo2に更新、タイマカウント初期値に戻す】・【シーケンスAなら出力OFF、シーケンスNo1に更新、タイマカウント初期値に戻す】

【RETURN】

【RETURN】
TMR0の数値はハードウェアマニュアルを見て算出しました。また、サイトも見て算出しましたので間違いはないとは思います。
このずれを無くす方法はありますでしょうか。地道にオシロを見てTMR0を調整していくしかないでしょうか。
尚、ONOFFの他にも処理があり、そちらはメインループの中で動かす予定です。
PIC初心者でアセンブラも初心者です。
ご回答いただけると幸いです。よろしくお願い致します。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re: タイマに関すること
668
: 16/09/05-13:43
Gokan <gokan@picfun.com>

「ラベルコール」の意味が不明ですが「割り込み」のことと理解してお答えします。
この処理方法では、TMR0を入れなおすまでにもTMR0が動いています
から、この入れなおす値をそれまで動いた分だけ減らす必要があります。
したがって計算した値より大きな値を設定する必要があります。
大きくする分は入れなおすまでに実行した命令サイクル数です。


> 12f683を使用しています。8MHzのクロックを使用しています。アセンブラで書いています。
> 決まった時間に出力をON、OFFしたいのですがオシロスコープで測定するとずれてしまいます。決まった時間にONOFFをさせたいと思いタイマ0呼び出しラベルの中に以下のようなフローのプログラムを書きました。
> 【タイマ0呼び出し】
> ↓
> 【タイマ0ラベルコール】
> ↓
> 【タイマ0フラグクリア】
> ↓
> 【TMR0を入れなおす】
> ↓
> 【タイマカウント数値デクリメント】
> ↓
> 【タイマカウント0ならラベルコール】→【0じゃないならRETURN】
> ↓
> 【シーケンス@なら出力ON、シーケンスNo2に更新、タイマカウント初期値に戻す】・【シーケンスAなら出力OFF、シーケンスNo1に更新、タイマカウント初期値に戻す】
> ↓
> 【RETURN】
> ↓
> 【RETURN】
> TMR0の数値はハードウェアマニュアルを見て算出しました。また、サイトも見て算出しましたので間違いはないとは思います。
> このずれを無くす方法はありますでしょうか。地道にオシロを見てTMR0を調整していくしかないでしょうか。
> 尚、ONOFFの他にも処理があり、そちらはメインループの中で動かす予定です。
> PIC初心者でアセンブラも初心者です。
> ご回答いただけると幸いです。よろしくお願い致します。
▲pagetop
タイトル
記事No
投稿日
投稿者
参照先
Re^2: タイマに関すること
674
: 16/09/13-23:41
まるも

お返事が遅くなり申し訳ございません。
そうだったんですね。
命令サイクルのことをぬかしていました。
有難うございます
▲pagetop

- WebForum -