// SCI6 RXI6 #pragma interrupt Intr_SCI6_RXI6(vect=86) void Intr_SCI6_RXI6(void); // SCI6 TXI6 #pragma interrupt Intr_SCI6_TXI6(vect=87) void Intr_SCI6_TXI6(void); // GROUPBL0 #pragma interrupt Intr_GROUPBL0(vect=110) void Intr_GROUPBL0(void); #ifdef __cplusplus //#include // Remove the comment when you use ios //_SINT ios_base::Init::init_cnt; // Remove the comment when you use ios #endif void main(void); #ifdef __cplusplus extern "C" { void abort(void); } #endif void main(void) { SYSTEM.PRCR.WORD = 0xA502; MSTP(SCI6) = 0U; //割り込み優先度 IPR(SCI6, RXI6) = 4; IPR(SCI6, TXI6) = 4; IPR(ICU,GROUPBL0) = 4; SCI6.SCR.BYTE = 0x00; SCI6.BRR = 0xC2; //9,600bps(PCLKB=60MHz) SCI6.SMR.BYTE = 0x00; SCI6.SCMR.BYTE = 0x00; MPC.PWPR.BIT.B0WI = 0; MPC.PWPR.BIT.PFSWE = 1; //RXD6->P01 MPC.P01PFS.BYTE = 0x0A; PORT0.PMR.BIT.B1 = 1; //TXD6->P00 MPC.P00PFS.BYTE = 0x0A; PORT0.PMR.BIT.B0 = 1; //グループBL1割り込み ICU.GENBL0.BIT.EN12 = 1; //TEI6 ICU.GENBL0.BIT.EN13 = 1; //ERI6 //割り込みフラグクリア IR(SCI6, TXI6) = 0; IR(SCI6, RXI6) = 0; IR(ICU,GROUPBL0) = 0; //割り込み許可 IEN(SCI6, TXI6) = 1; IEN(SCI6, RXI6) = 1; IEN(ICU,GROUPBL0) = 1; //通信開始 SCI6.SCR.BYTE = 0xF0; //ここではTEI割り込みは有効化しない while(1) { __nop(); } } #ifdef __cplusplus void abort(void) { } #endif void Intr_SCI6_RXI6(void) { unsigned char dummy; dummy = SCI6.RDR; } void Intr_SCI6_TXI6(void) { __nop(); } void Intr_GROUPBL0(void) { //TEI6 if (ICU.GRPBL0.BIT.IS12 == 1) { __nop(); } //ERI6 if (ICU.GRPBL0.BIT.IS13 == 1) { SCI6.SSR.BYTE &= ~0x38; //エラークリア } }