2017-08-30

ESP8266/ESP32でのサブマイクロ秒の時間調整

ESP8266 ブリッツ BLITZ DAMPER ZZ-Rダンパー フルタップ車高調キット トヨタ アルファード GGH25W 08/05-15/01 送料無料 代引無料 ESP32

LM5 アクセル アルディ KOMEHYO タイヤホイールセット!ステップワゴン スパーダRP系AXEL 7.5Jx18LEMANSV 18インチ パールブラック/ミラーカット スパーダRP系AXEL 225/45R18 パールブラック/ミラーカット

外部の機器との通信のためにサブマイクロ秒オーダーでGPIOを制御したくなるときがあるかもしれません。しかしdelayMicroseconds()やvTaskDelay()では、1マイクロ秒やそれ以下の時間制御は不可能です 【店舗塗装サービス】【E26 NV350 キャラバン ノーマルボディ レガンス】NV350 キャラバン ナローボディ専用 フロントハーフスポイラー。

今回は、アセンブラの「何もしない」命令であるNOP命令を使って時間調整を行いました 195/50R15 82Q YOKOHAMA ヨコハマ IG60 IG60 EuroSpeed S810 ユーロスピード S810 スタッドレスタイヤホイール4本セット YOKOHAMA ヨコハマ ice GUARD6 アイスガード ig60 スタッドレス スタッドレスタイヤ 215/55R17 WEDS ウェッズ RIZLEY ライツレー ZM ホイールセット 4本 17インチ 17 X 7 +40 5穴 114.3。NOP命令では何もせずに1クロック分の時間を消費するため、よく時間調整に用いられる命令です [Dotty] ダティ コックス・スポーツ シートカバー ソニカ L405S / L415S H18/06~H21/5 4人乗 [RSリミテッド(2WDを除く) / RS / R] ※北海道は送料540円(税込) 沖縄・離島は送料1296円(税込)。

例えばESP32が160MHzで動作している時、1秒間に160,000,000クロック分の処理が行われております KYB カヤバ ショックアブソーバー LKIT-ZVW305 トヨタ 30系 プリウス用 Lowfer Sports KIT(ローファースポーツキット) 1台分 ショックアブソーバ&コイルスプリング セット。

。そして1マイクロ秒間には160クロック分の処理が行われるため、ある時刻から160クロック分増加するまで待機すれば1マイクロ秒の時間調整が可能です 柿本改 マフラー デミオ DBA-DE5FS GTbox06&S 柿本。

今回はwhileでCPUクロック数がおよそ160増加するまでNOP命令を実行し続ける手法を取ります。

実装

まず関数get_ccount()を定義します。

static inline unsigned get_ccount(void)
{
 unsigned r;
 asm volatile ( 

KOMEHYO 18インチ タイヤホイールセット!ステップワゴン スパーダRP系AXEL Aタイプ アクセル アルディ パールブラック/ミラーカット 235/50R18 7.5Jx18LEMANSV LM5 225/45R18

"rsr %0, ccount" : "=r"(r)); return r; }

そして160MHz ESP32/ESP-IDFの場合、1マイクロ秒LOW、3マイクロ秒HIGH、その後再びLOWにしたいときには以下のコードで実現できます 。

ESP32では1マイクロ秒間にCPUクロック数は160増加するため、待ち時間に応じたクロック数をwhileの条件式に代入することで、マイクロ秒オーダでのGPIO制御が可能となります。

long startCount;
startCount = get_ccount();
gpio_set_level(GPIO_INPUT_IO_0, LOW);
while (get_ccount() - startCount < 160) __asm__ __volatile__ ("nop");
startCount = get_ccount();
gpio_set_level(GPIO_INPUT_IO_0, HIGH);
while (get_ccount() - startCount < 160*3) __asm__ __volatile__ ("nop");
gpio_set_level(GPIO_INPUT_IO_0, LOW);

誤差はおよそ0.1マイクロ秒程度であり、1Mbpsの通信は十分行えました。さらに厳密に時間調整したい場合は、whileのループ外にもNOPすることで可能になります。

KOMEHYO 18インチ タイヤホイールセット!ステップワゴン スパーダRP系AXEL  アクセル アルディ パールブラック/ミラーカット 7.5Jx18LEMANSV LM5 225/45R18

参考にしたページ

Precise timing needed (ex. for IR decoding)

投稿をシェアする

{yahoojp} {blog.kat-kai.net}