![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
タイマー割り込み
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 //******************************************* 00002 // 割り込みのサンプルプログラム 00003 //******************************************* 00004 00005 //ヘッダファイル(もしくはライブラリ)をインクルード 00006 #include "mbed.h" 00007 #include "main.h" 00008 00009 //デジタル出力ピン(LED)の指定 00010 DigitalOut Interrupt_LED1(dp9); 00011 DigitalOut Interrupt_LED2(dp10); 00012 DigitalOut Interrupt_LED3(dp11); 00013 DigitalOut myLED(LED1); 00014 00015 //指定時間後に、一度だけ割り込みがかかる 00016 Timeout Switch1; 00017 00018 //一定時間ごとに、繰り返し割り込みがかかる 00019 Ticker Switch2; 00020 00021 int main(void){ 00022 00023 //初期設定(すべてのLEDを消灯しておく) 00024 Interrupt_LED1 = LOW; 00025 Interrupt_LED2 = LOW; 00026 Interrupt_LED3 = LOW; 00027 myLED = LOW; 00028 00029 //指定時間(2秒後)に、一度だけ割り込みがかかる 00030 Switch1.attach(&LightGlowing, 2); 00031 00032 //指定時間(10秒毎)に、繰り返し割り込みがかかる 00033 Switch2.attach(&LightFlash, 10); 00034 00035 while(1){ 00036 //メインLEDをチカチカさせる。割り込み動作中は止まる。 00037 myLED = HIGH; 00038 wait(0.5); 00039 myLED = LOW; 00040 wait(0.5); 00041 } 00042 } 00043 00044 //3連LEDを順に点灯させる。プロトタイプ宣言はヘッダファイル内で行う 00045 void LightGlowing(){ 00046 wait(0.01); 00047 00048 //LEDを順に光らせる 00049 Interrupt_LED1 = HIGH; 00050 wait(0.01); 00051 Interrupt_LED2 = LOW; 00052 wait(0.01); 00053 Interrupt_LED3 = LOW; 00054 00055 wait(0.5); 00056 00057 Interrupt_LED1 = HIGH; 00058 wait(0.01); 00059 Interrupt_LED2 = HIGH; 00060 wait(0.01); 00061 Interrupt_LED3 = LOW; 00062 00063 wait(0.5); 00064 00065 Interrupt_LED1 = HIGH; 00066 wait(0.01); 00067 Interrupt_LED2 = HIGH; 00068 wait(0.01); 00069 Interrupt_LED3 = HIGH; 00070 00071 wait(0.5); 00072 00073 Interrupt_LED1 = LOW; 00074 wait(0.01); 00075 Interrupt_LED2 = LOW; 00076 wait(0.01); 00077 Interrupt_LED3 = LOW; 00078 00079 } 00080 00081 //3連LEDを点滅させる。プロトタイプ宣言はヘッダファイル内で行う。 00082 void LightFlash(){ 00083 00084 wait(0.01); 00085 00086 //LEDを順に光らせる 00087 Interrupt_LED1 = HIGH; 00088 wait(0.01); 00089 Interrupt_LED2 = LOW; 00090 wait(0.01); 00091 Interrupt_LED3 = LOW; 00092 00093 wait(0.5); 00094 00095 Interrupt_LED1 = LOW; 00096 wait(0.01); 00097 Interrupt_LED2 = HIGH; 00098 wait(0.01); 00099 Interrupt_LED3 = LOW; 00100 00101 wait(0.5); 00102 00103 Interrupt_LED1 = LOW; 00104 wait(0.01); 00105 Interrupt_LED2 = LOW; 00106 wait(0.01); 00107 Interrupt_LED3 = HIGH; 00108 00109 wait(0.5); 00110 00111 Interrupt_LED1 = LOW; 00112 wait(0.01); 00113 Interrupt_LED2 = LOW; 00114 wait(0.01); 00115 Interrupt_LED3 = LOW; 00116 00117 }
Generated on Thu Jul 14 2022 00:36:06 by
![doxygen](doxygen.png)