bisonのつくりかた

単位さんのブログ

電子工作とかとか

PIC32の使い方②(Timer&Lチカ)

前回の記事の続きです.今回は前回光らせたLEDをタイマーを使って一定周期でチカチカしていきます.面倒な環境設定から配線までは前回やったので今回はプログラムを変更していきます.

前回はLチカ――――――でしたが,今回はLチカチカチカチカって感じですね.

bison.hateblo.jpまずはMHCでタイマと割り込みを有効にします.

WindowsタブからAvailable Conponets,Project Graph,Configuration Optionsを開きます.

Available Conponets→Peripherals→TMR→TMR1をダブルクリックで選択.

Project Graphに追加されたTMR1を選択.

Configuration Optionsで詳細を設定します.

 

f:id:bison0522:20190413234443p:plain

これで100ms周期ごとにタイマ1割り込みが発生します.要はプログラム実行中,100msごとに割り込み用の関数が実行されるわけです.この割り込み用の関数の中でLED出力を反転させる処理を行えば200ms周期(100ms点灯+100ms消灯)でLEDが点滅します.

とりあえず設定を出力します.

f:id:bison0522:20190323164404p:plain

んで割り込みハンドラっていう,割り込みが発生すると呼び出される関数の中に次の1文をちょいっと付け足せば完成です.

GPIO_PinToggle(GPIO_PIN_RA7); 

 ちなみにこれはピン出力を反転させる関数です.割り込みハンドラは全部interrupts.cの中にまとめられているので,ここのTimer1の割り込みハンドラの中に書き加えます.また,このinterrupt.cは#include "definitions.h"って最初にありますが,GPIOとかのヘッダもろもろが読み込まれています.ピン出力反転の関数が使えるのもこれがあるからです.

f:id:bison0522:20190414001002p:plain

で書き込むと

 わーチカチカしてるーってなります.めっさ簡単でしょ.

以上です.

https://twitter.com/bison0522/status/1116701974592835585