演習 5-1 (個人PC): INT 割り込みを使ってみましょう。プログラムの仕様は以下の通りです。
仕様:
※ タクトスイッチはプルアップされてるので、押すと「High → Low」と変化する事に注意
プロジェクト「IO_4_2」を「IO_5_1」にコピーします(プロジェクト名を右クリックして Copy を選択)。
プロジェクト IO_4_2 を閉じます(プロジェクト名を右クリックして Close を選択)。
(もし開きっぱなしになっていたら) 前のプロジェクトで開いていたソースを全て閉じます。
main.c を開いて例6を有効にします。
回路を作成します。
以下の設定に従って回路を作成して下さい。
(*) が前の演習からの変更箇所です。
ピン配置設定・回路接続方法: 01: VDD(3.3V) 02: RA5 03: (*)RA4/PWM2 -- 圧電スピーカ ※ 配線済 04: MCLR/VPP -- PICKit の 1: NMCLR ※ プルアップ抵抗不要 05: RC5 06: RC4 07: RC3 08: RC6 09: RC7 10: RB7/PWM1 -- オシロスコープ 11: RB6 12: RB5/Tx -- RN-42 の J2-7 : Rx 13: RB4/Rx -- RN-42 の J2-6 : Tx 14: RC2 15: RC1/ANC1 -- 可変抵抗の中央ピン 16: RC0 (GPIO出力) -- LED (*)17: RA2/INT -- タクトスイッチ ※ 実際には回路に変更はありません 18: ICSPCLK(PGC) -- PICKit の 5: PGC 19: ICSPDAT(PGD -- PICKit の 4: PGD 20: VSS(GND)
書き込みボタンを押して正常に動作する事を確認して下さい。
提出物はありません。
演習 5-2 (個人PC): タイマー割り込みを使ってみましょう。プログラムの仕様は以下の通りです。
仕様:
プロジェクト「IO_5_1」を「IO_5_2」にコピーします(プロジェクト名を右クリックして Copy を選択)。
プロジェクト IO_5_1 を閉じます(プロジェクト名を右クリックして Close を選択)。
(もし開きっぱなしになっていたら) 前のプロジェクトで開いていたソースを全て閉じます。
main.c を開いて例7を有効にします。
回路には変更ありません。
書き込みボタンを押して正常に動作する事を確認して下さい。
提出物はありません。
演習 5-3 (個人PC): タイマー割り込みを使ってLEDを点灯させてみましょう。
仕様:
プロジェクト「IO_5_2」を「IO_5_3」にコピーします(プロジェクト名を右クリックして Copy を選択)。
プロジェクト IO_5_2 を閉じます(プロジェクト名を右クリックして Close を選択)。
(もし開きっぱなしになっていたら) 前のプロジェクトで開いていたソースを全て閉じます。
main.c を開きます。
仕様に従って main.c の内容を書き換えます。run関数の内容は以下の内容としてください。
void run(void)
{
while(1);
return;
}
演習 5-4 (個人PC): INT割り込みとタイマー割り込みを組み合わせてみましょう。
仕様:
プロジェクト「IO_5_3」を「IO_5_4」にコピーします(プロジェクト名を右クリックして Copy を選択)。
プロジェクト IO_5_3 を閉じます(プロジェクト名を右クリックして Close を選択)。
(もし開きっぱなしになっていたら) 前のプロジェクトで開いていたソースを全て閉じます。
main.c を開きます。
仕様に従って main.c の内容を書き換えます。run関数の内容は以下の内容としてください。
void run(void)
{
while(1){
printf("count3= %d\r\n",count3);
__delay_ms(1000);
}
return;
}
演習 5-5 (個人PC): アラームを作ってみましょう。
仕様:
プロジェクト「IO_5_4」を「IO_5_5」にコピーします(プロジェクト名を右クリックして Copy を選択)。
プロジェクト IO_5_4 を閉じます(プロジェクト名を右クリックして Close を選択)。
(もし開きっぱなしになっていたら) 前のプロジェクトで開いていたソースを全て閉じます。
main.c を開きます。
仕様に従って main.c の内容を書き換えます。run関数の内容は以下の内容としてください。
void run(void)
{
pwm2(7600,0);
while(1);
return;
}