goo blog サービス終了のお知らせ 

JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

Raspberry Pi Pico MicroPython Timer割込み

2021-11-12 23:15:25 | Raspberry Pi Pico
 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)については、まだまだ勉強不足でよくわ分からないことが多いですが、様々な事例を実行していくことによって、少しずつ習得していこうと思っています。

最新の画像もっと見る

2 コメント

コメント日が  古い順  |   新しい順
Unknown (吉田純造)
2022-08-28 14:58:46
具体的でわかりやすかった
ありがとうございました
返信する
Re: (JH7UBC)
2022-08-29 14:23:11
吉田さん こんにちは JH7UBC畠です。

コメントありがとうございます。

割込みって、分かりにくいですよね。参考になって幸いです。

今後ともよろしくお願いいたします。
返信する

コメントを投稿