#include "iodefine.h"
#include "global.h"
#include "vect.h"
extern MAIN_STATE main_state;
extern MODE_STATE mode_state;
extern unsigned char volume;
void initIRQ(void);
void initIRQ(void){
int i;
ICU.IER[8].BYTE = 0x00;
//デジタルフィルタ 許可ビット
ICU.IRQFLTE0.BYTE = 0x00;
ICU.IRQFLTC0.WORD = 0xFFFF;//64clockに1回
//デジタルフィルタ 許可ビット IRQ0-7
ICU.IRQFLTE0.BYTE = 0xFF;
PORTD.PDR.BYTE = 0;
PORTD.PMR.BYTE = 0x00;//ポートモードレジスタ(0:汎用入出力ポート, 1:周辺機能)
//マルチファンクションピンコントローラ
MPC.PWPR.BYTE &= ~0x80;//PFSプロテクト解除
MPC.PWPR.BYTE |= 0x40;
MPC.PD0PFS.BYTE = 0x40;
MPC.PD1PFS.BYTE = 0x40;
MPC.PD2PFS.BYTE = 0x40;
MPC.PD3PFS.BYTE = 0x40;
MPC.PD4PFS.BYTE = 0x40;
MPC.PD5PFS.BYTE = 0x40;
MPC.PD6PFS.BYTE = 0x40;
MPC.PD7PFS.BYTE = 0x40;
MPC.PWPR.BYTE &= ~0x40;
MPC.PWPR.BYTE |= 0x80;//PFSプロテクト設定
ICU.IRQCR[0].BIT.IRQMD = 1;
ICU.IRQCR[1].BIT.IRQMD = 1;
ICU.IRQCR[2].BIT.IRQMD = 1;
ICU.IRQCR[3].BIT.IRQMD = 1;
ICU.IRQCR[4].BIT.IRQMD = 3;
ICU.IRQCR[5].BIT.IRQMD = 3;
ICU.IRQCR[6].BIT.IRQMD = 3;
ICU.IRQCR[7].BIT.IRQMD = 3;
for(i=64; i<72; i++){
ICU.IPR[i].BYTE = 11;
ICU.IR[i].BYTE = 0x00;
}
ICU.IER[8].BYTE = 0xFF;
}
// ICU IRQ0
void Excep_ICU_IRQ0(void){
}
// ICU IRQ1
void Excep_ICU_IRQ1(void){
}
// ICU IRQ2
void Excep_ICU_IRQ2(void){
}
// ICU IRQ3
void Excep_ICU_IRQ3(void){
}
// ICU IRQ4(Yellow Button)
void Excep_ICU_IRQ4(void){
volume = ((PORTD.PIDR.BYTE & 0xF0) >> 4);
}
// ICU IRQ5(Green Button)
void Excep_ICU_IRQ5(void){
volume = ((PORTD.PIDR.BYTE & 0xF0) >> 4);
}
// ICU IRQ6(Orange Button)
void Excep_ICU_IRQ6(void){
volume = ((PORTD.PIDR.BYTE & 0xF0) >> 4);
}
// ICU IRQ7(Red Button)
void Excep_ICU_IRQ7(void){
volume = ((PORTD.PIDR.BYTE & 0xF0) >> 4);
}
コメント
コメントを投稿