YS電子工作ラボ

<pico W>
タイムスタンプ読み出しによる
LED On Off
(by Arduino)



<仕様>
 ・ pico Wを使用すること
 ・ LEDは1sec ON(点灯)、1sec OFF(消灯)の点滅を繰り返すこと
 ・ 点滅させるLEDは、以下とする
   1. pico基板上のLED
   2. picoの外部端子(ピン番号1)に接続されたLED
 ・ 時間制御は、タイムスタンプを読み出しておこなうこと。
 ・ 各LEDの点滅は、同期していること
 ・ 開発言語は Arduinoとする
 
<回路図>(→ PDFファイル
 
<外観> 実験用キバンには、本テーマと関係ない部品が多々実装されています。
 
<動作結果>(→ 動画:1080pのHD動画を見ることができます。)
 
LED : OFF  LED : ON
 
 
 
 
<解説> ソースコード精読願います。
以下、app.ino
<追記> pico Wのタイムスタンプ(64ビット)のオーバーフローについて
   2**64 +1 = 18,446,744,073,709,551,615[μsec]
          = 約 5,851,444[年] 
          = 約 585万[年]
 上記のようなプログラムは pico Wが起動後 585万年後に誤動作することが予想されますが、ふつうのプログラムで問題となる時間ではないと思われます。
 
(参考)Arduino IDEで uint64_t time_us_64() を検索すると以下のような以下のような説明がありました。
 function time_us_64  uint64_t time_us_64()
→ uint64_t
\brief Return the current 64 bit timestamp value in microseconds
\ingroup hardware_timer
Returns the full 64 bits of the hardware timer. The \ref pico_time and other functions rely on the fact that this value monotonically increases from power up. As such it is expected that this value counts upwards and never wraps (we apologize for introducing a potential year 5851444 bug).
\return the 64 bit timestamp