ロータリーエンコーダでグルグル回る角度を読み取る
RX220マイコンで2相パルスカウント:グルグル回る角度を の具体的なプログラムです。
※初期化部分は省略
このルーチン、最新カウント値が欲しい時だけでなく、オーバーフローをチェックするため定期的に呼び出してください。
※表示の関係で全角スペースを使っています
/****************************************/
/* 2相パルスカウント */
/****************************************/
// 16bit up/downカウンタのオーバーフローをチェック
// 4逓倍で1回転1200パルス
long cnt_old; // 前回カウンタ
WORD cnt_read; // 読み出したカウント値 0~1199
WORD cnt_offset; // カウンタオフセット値 0~1199
#define PLS_1200 1200 // 1200パルス/360度
#define PLS_CW 736 // CW: 65536 % 1200 = 736を加算
#define PLS_CCW 464 // CCW: 1200 - 736 = 464を加算
/***** カウンタ読み出し *****/
// 0~1199の値を持ってリターン
// 16bitカウンタのオーバーフローをチェックしながら
// カウント1で0.3度
WORD cntread(void)
{
long cnt;
WORD a;
cnt = (long)MTU1.TCNT; // 16biカウンタ→longに
if((labs(cnt - cnt_old)) >= 32768L){ // オーバーフロー発生
P30_H; // (!!!) P30 10pin H/L
a = cnt_offset; // オフセット値
if(cnt < cnt_old){ // 右回転
a = a + PLS_CW; // +736
}
else{ // 左回転
a = a + PLS_CCW; // +464
}
cnt_offset = a % PLS_1200; // 新オフセット値:1200で割ったあまり
}
else{ // 通常カウント
P30_L; // (!!!)
}
cnt_old = cnt; // 次回チェック値
a = (WORD)(cnt % PLS_1200); // 16biカウンタ 1200パルスで割った余り
cnt_read = (a + cnt_offset) % PLS_1200; // オフセット加算
return cnt_read; // 0~1199の値
}
※出力ポート「P30」にパルスを出すことで、オーバーフローのタイミングをオシロで観察できるようにしています。
| 固定リンク
「電子回路工作」カテゴリの記事
- LTC6101を使った電流検出回路をケースに入れる(2023.11.24)
- 今日の失敗:パーツクリーナーで「ポリスチレン」にダメージ(2023.11.10)
- 2つあるワンショットマルチの時定数比を一定にしたい(2023.10.21)
- LEDドライバー、どうしよう(2023.09.04)
- 人感センサー用オフディレータイマー回路(2023.08.26)
「電子工作」カテゴリの記事
- TRWの16pin DIP IC「8543」 これは何?(2023.10.06)
- 予告:「マイコン型導通チェッカー」「電池電圧チェッカー」値上げします(2022.11.16)
- 三和の針式テスター「GP-5」不調(2022.10.18)
- 「ダイソー ミニケース 5個組」が見つからない #2(2022.10.12)
- 「ダイソー ミニケース 5個組」が見つからない(2022.09.29)
コメント
下間様をはじめ、ガレージ関係各位に被害はありませんでしたか?
被害に遭われた方々のお見舞いを申し上げます。
投稿: 被害は? | 2018年6月18日 (月) 19時19分
こちら生野区、まぁ無事です。
地域内では…
壁が落ちた。
屋根瓦がずれた。
水道の配管がぁ
貯水タンクがぁ
くらいの話が出ている(今、呑みながら)くらいです。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2018年6月18日 (月) 19時48分
被害が少ないようで安心しました。
パーツボックスなどが吹っ飛んでグチャグチャな
方などいらっしゃるようで、お気の毒に思ってました。
まだ、数日は震れがあるかもしれませんので、お気を付け下さい。
投稿: naoty | 2018年6月18日 (月) 21時03分
仕事場では…
出社してちょいとしてからの時刻、コーヒーを沸かしてカップに入れ飲み始めたタイミングでした。
仕事場は4階建てマンションの2階。
隣に保育園児らのいる若夫婦が住んでいます。
旦那さんはすでに仕事に出かけておられたんで、奥様とチビちゃんだけ。
「きゃ~」という声が聞こえたんで、「ドアは開けたままで! 火元は大丈夫?」などと声かけしてました。
仕事場では…
「大阪魂:パーツクリーナー」(背が高い)のスプレー缶が転がったくらいでした。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2018年6月18日 (月) 21時19分
お昼休み、ガレージの状態が気になって…
一升瓶は無事か?
ビールサーバーからビールが漏れ出してないか?
アンテナは大丈夫か?
など、気になっていったん帰宅しました。
ガスの自動遮断機が働いてた、とのことでしたが復旧済み。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2018年6月18日 (月) 21時24分
昨日、たまたま地域の「救急救命講習会」がありまして、AEDの使用方法など皆さんと受講してきたばかりでした。
※過去、何度も受講してるんですが、こればかりは
実践したことがありません。
昨日の今日ですんで、消防・救急のみなさんにはほんとに感謝します。
投稿: 居酒屋ガレージ店主(JH3DBO) | 2018年6月18日 (月) 21時48分