Skip to content

SatoshiRC/encoder-STM32

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

初めに

このクラスはエンコーダーの値を簡単に取得できるようにするために作成されました。


CubeMXでの設定

Pinout

TIMx のConbined ChannelEncoder Modeにする。 使用するピンを設定する(写真ではPC6,PC7をしよう) Pinout ##Configration CounterPeriodを適当に設定する。(e.g.)PWMで設定した値にする。
EncoderModeをA相,B相があるエンコーダー(e.g. AMT102,AMT103,etc)ではEncoder Mode TI1 and TI2に設定する。
カウントの方向はPrrameter for Channel xの片方のPolarityを変更することで変えられる。 Configration


Encoder(TIM_HandleTypeDef *timer);

使用するタイマーを指定します。コンストラクタ内でメンバ変数の初期化も行っています。


メンバ関数

メンバ関数の使用方法について解説しています。

void init();

初期化に使用します。現段階で意味のある機能は実装されていません。初期化を実装した場合はここも更新してください。

void start();

カウントを開始します。カウンタは初期化されません。前回値の続きからカウントします。

void stop();

カウントを停止します。カウントの初期化は行いません。

void update();

カウンタを更新します。この関数以外でカウンタが更新されることはありません。カウント中はループ毎にこの関数を呼び出してください。

int32_t getCount();

現在のカウンタを返します。この関数を呼び出すする前にupdate()を呼び出してカウンタを更新してください。

void resetCount();

カウンタを0に戻します。


使用例

#include"encoder.hpp"

Encoder encoder(&htim3);

void init(void){
	encoder.init();
	encoder.start();
}

void loop(){
	static int32_t count = 0; 
	encoder.update();
	count = encoder.getCount();
	if(resetCondition){
		encoder.resetCount();
	}
	if(endCondition){
		encoder.stop();
		break;
	}
}

2019/10/16 created by satoshi ohya(conatus.11099@gmail.com) 2019/10/c3 edited by satoshi ohya

About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages