Raspberry Pi Pico(RP2040)は、内部に16ビットタイマを持っていて、周期的(定期的に)割込みをかけ、設定した処理を行うことができます。
タイマの動作モード(mode)は、
ワンショット(Timer.ONE_SHOT)と
周期タイマ(Timer.PERIODIC)の2つです。
割込みがかかった時に呼び出される関数(callback関数)を指定します。
タイマ周期の指定方法は、
freq(周波数(Hz単位))と
tick_hz引数とperiod引数で周期を指定する方法があります。
この割込みを使うためのmachine.Timerコンストラクタの仕様は
Timer(id,mode,callback,period,tick_hz,freq) です。
id=-1
mode Timer.ONESHOTまたはTimer,PERIODIC
period タイマのカウント数(tick_hz単位でのカウント数)
tick_hz タイマのカウント周波数(Hz単位の整数)
freq タイマの周波数(Hz単位の整数)
Pico内蔵のLED(Pin25に接続されている)をタイマ割込みで点滅させる、いわゆるLチカのスクリプトです。
Web上にあったいくつかの例をコピーさせていただきました。いずれも周期タイマ(PERIODIC)を利用しています。
例1 cllback関数tica2()を定義しています。initはタイマを初期化するメソッドです。
例2 コンストラクタTimerの中にすべての処理を記載しています。
例3 タイマ初期化メソッドの中にすべての処理を記載しています。
例1~例3のいずれも動作しました。
lambdaは、ラムダ式、無名関数といい、こんな風に使われるですね。まだよく理解していません。
Python(MIcroPython)については、まだまだ勉強不足でよくわ分からないことが多いですが、様々な事例を実行していくことによって、少しずつ習得していこうと思っています。