アットウィキロゴ

割り込み使ってLEDチカチカ

割り込みでLED点滅

割り込みで点滅させるプログラム。
これまたポート2に信号を出力させる。LEDをポート2に配線しよう。

main.c

void main(void)
{
 
        CINIT;
        SYSTEM.SCKCR.BIT.ICK=0;  /*コアクロック96MHz*/
        SYSTEM.SCKCR.BIT.PCK=1;  /*周辺機器クロック PCLK=48MHz*/
 
        PORT2.DDR.BYTE=0xff;  /* PORT2の全端子を出力に設定 */
        PORT2.DR.BYTE=0x00;  /* PORT2のon/offを一応クリア */
 
          /*CMT コンペアマッチタイマ*/
        SYSTEM.MSTPCRA.BIT.MSTPA15=0;	/* モジュールストップ解除CMT0,CMT1 */
          /*クロック選択 0:PCLK/8 1:PCLK/32 2:PCLK/128 3:PCLK/512*/
        CMT1.CMCR.BIT.CKS=3; /* 48MHz/512=93.75KHz  1周期=10.67μsec */
        CMT1.CMCOR=46875;  /*周期設定 46875x10.67=0.5sec */
        CMT1.CMCNT=0;  /*カウンタリセット*/
 
        IEN(CMT1,CMI1)=1;  /*割り込み要求許可*/
        IPR(CMT1,CMI1)=1;  /*割り込み優先レベル*/
        CMT1.CMCR.BIT.CMIE=1;  /*割り込み許可*/
        CMT.CMSTR0.BIT.STR1=1;  /*割り込み開始*/
 
        while(1);
}

intprg.c

69行目~

// CMT0 CMI1
void Excep_CMT0_CMI1(void)~
{
 
        PORT2.DR.BYTE=~PORT2.DR.BYTE;  /* ポートから読んできて反転してポートに戻す */
 
} }
最終更新:2013年02月27日 19:57