3番目のビデオでは、割り込みを紹介し、複雑なアプリケーションを管理するために割り込みをプログラムする方法を示します。
最初のビデオでは、プッシュ ボタンとLEDを駆動するピンを直接接続しました。2番目のビデオでは、CyDelay関数を使用してLEDを1 Hzで切り替える必要がありました。ほとんどの場合、これらはマイクロコントローラを使用するための最適化された方法ではありません。特定のアクションを実行するために割り込みをトリガーし、その後、マイクロコントローラを解放してより多くのタスクを実行し、複雑なアプリケーションを管理したり、低電力モードにしてアプリケーションの平均電流消費を減らしたりする方が適切です。
この新しいプロジェクトでは、赤色LEDが再びポート2ピン6に接続され、ピン レベルとしてのハードウェア接続がないため、LEDのオン/オフは割り込みとCコードによって処理されます。
スイッチを検出するための入力ピンが閉じています。スイッチは閉じているときにグランドに接続されるため、このピンは立ち下がりエッジでの割り込み、抵抗プルアップとしての駆動モード、およびハイでの初期駆動状態を使用して構成する必要があります。その後、割り込みコンポーネントを接続できます。割り込みコンポーネントの名前はPin_SW_Intです。
利用可能なAPIに関するすべての情報はデータシートに記載されています。割り込みを検出するには、ハンドラーの名前をパラメータとして持つ関数Pin_SW_Int_StartExがジョブを実行します。CY_ISR関数を呼び出し、赤色LEDを点灯し、割り込みをクリアします。
LEDを自動的に切り替えるには、タイマーとして構成されたTCPWMコンポーネントを割り込みコンポーネントに接続します。計算を簡単にするために、32 kHzクロックがタイマーに供給され、周期は32,000カウントにプログラムされます。したがって、割り込みは1秒ごとにトリガーされます。
Cコードも非常にシンプルです。タイマーを開始し、割り込みを検出して割り込みサービス ルーチンを呼び出す必要があります。その後、LEDが切り替わり、割り込みがクリアされます。