関数
コード(プログラム)を機能ごとに分割して特定の仕事をこなすモジュールを作ることができます。このモジュールを関数(function)と呼びます。
関数の典型的な使い道は、スケッチのなかで何度も行われる処理をひとつにまとめることです。関数を「コール」すると処理が実行され、またコールしたところへ戻ってきます。
使用例
volatile unsigned long Val[] = {0, 0, 0}; void setup() { attachInterrupt(digitalPinToInterrupt(1), In, CHANGE);//ピン割込時実行 Serial.begin(9600); //9600bpsでシリアルポートを開く } void loop() { Serial.print(Val[0]); //最後に割込みピンに変化が有った時刻を出力します Serial.print(":"); Serial.println(ElapsedTime(Val[0]));//前回の割込みから直近の割込みまでの経過時間 delay(1000); //1000ms(1秒)待ちます } void In() { //値を返さない関数(割込み等) Val[0] = millis(); //ピンの状態が変化した時の時刻を変数に代入する } int ElapsedTime(unsigned long i) { //値を返す関数(loop中で複数回使う時等) Val[2] = Val[1]; //前回の時刻Val[1]をVal[2]に保存 Val[1] = i; //Val[1]の値を直近の時刻を更新して保存 return Val[1] - Val[2]; //前回の割込みから直近の割込みまでの経過時間を出力 }
図1:プログラム例
コードを関数化することのメリット
◯関数を使うことでプログラマは秩序立った状態を保てます。
◯関数は同じ処理を同じ場所に集約します。同じことを何度も考えたり、
繰り返しデバッグする必要がなくなります。
◯このことはプログラムの修正時にエラーを出す確率も減らします。
◯関数はスケッチのサイズを小さくします。コードが集約されるので
メモリの使用効率がよくなります。
◯モジュラ化によってコードを他のプログラムで再利用することが容易になります。
また、それによってコードが読みやすくなるという効果も生じます。
励みになりますのでよければクリック下さい(^o^)/