ESP32pcntカウンタをテストしてみた 2021/12/9 No.262 マイコンソフトウェア ESP32でpcntカウンタでパルスをただ数えるだけ。 16bitの符号付きの高速なパルスカウンタです。 もっと詳しい事を知りたい方は esp32 pcntで検索するとなにか見つかると思います。 桁数が足らないので工夫しています。 素人の書いたコードなので間違いがあるかも知れません。 #include "driver/pcnt.h" #define PULSE_INPUT_PIN 32 //パルスの入力ピン #define PULSE_CTRL_PIN 33 //制御ピン #define PCNT_H_LIM_VAL 32768 //カウンタの上限32768 16bit Counter 65536 #define PCNT_L_LIM_VAL -32768 //カウンタの下限-32768 int16_t count = 0; //カウント数 unsigned long currentCount = 0; unsigned long previousCount = 0; unsigned long addCount = 0; unsigned long previousMillis = 0; const long interval = 1000; void setup() { pcnt_config_t pcnt_config;//設定用の構造体の宣言 pcnt_config.pulse_gpio_num = PULSE_INPUT_PIN; //pcnt_config.ctrl_gpio_num = PULSE_CTRL_PIN;//制御信号入力GPIO番号 pcnt_config.ctrl_gpio_num = PCNT_PIN_NOT_USED; pcnt_config.lctrl_mode = PCNT_MODE_REVERSE;//_REVERSE:invert counter mode(increase -> decrease, decrease -> increase) pcnt_config.hctrl_mode = PCNT_MODE_KEEP;//_KEEP:won’t change counter mode //
コメント
コメントを投稿