/***********************************************************************/ /* */ /* FILE :intprg.c */ /* DATE :Wed, Nov 02, 2011 */ /* DESCRIPTION :Interrupt Program */ /* CPU TYPE :H8/3052F */ /* */ /* This file is generated by Renesas Project Generator (Ver.4.16). */ /* */ /***********************************************************************/ #include "iodefine.h" #include extern volatile unsigned int H_clock; extern volatile unsigned int V_clock; extern volatile unsigned int D_clock; extern volatile unsigned char Stat; //extern volatile struct rgb red; //extern volatile struct rgb green; extern void Data_Out(int x,int y); extern void out(struct rgb c); volatile unsigned int H_table[] ={324,507}; volatile unsigned int V_table = 153; volatile unsigned int D_table[] ={107,400}; struct rgb{ unsigned char r:6; unsigned char g:6; unsigned char b:6; }; extern volatile unsigned int Y_div; extern volatile unsigned int X_div; extern volatile unsigned char Wave; #pragma section IntPRG // vector 1 Reserved // vector 2 Reserved // vector 3 Reserved // vector 4 Reserved // vector 5 Reserved // vector 6 Reserved // vector 7 NMI __interrupt(vect=7) void INT_NMI(void) {/* sleep(); */} // vector 8 TRAP __interrupt(vect=8) void INT_TRAP1(void) {/* sleep(); */} // vector 9 TRAP __interrupt(vect=9) void INT_TRAP2(void) {/* sleep(); */} // vector 10 TRAP __interrupt(vect=10) void INT_TRAP3(void) {/* sleep(); */} // vector 11 TRAP __interrupt(vect=11) void INT_TRAP4(void) {/* sleep(); */} // vector 12 IRQ0 __interrupt(vect=12) void INT_IRQ0(void) {/* sleep(); */} // vector 13 IRQ1 __interrupt(vect=13) void INT_IRQ1(void) {/* sleep(); */} // vector 14 IRQ2 __interrupt(vect=14) void INT_IRQ2(void) {/* sleep(); */} // vector 15 IRQ3 __interrupt(vect=15) void INT_IRQ3(void) {/* sleep(); */} // vector 16 IRQ4 __interrupt(vect=16) void INT_IRQ4(void) {/* sleep(); */} // vector 17 IRQ5 __interrupt(vect=17) void INT_IRQ5(void) {/* sleep(); */} // vector 18 Reserved // vector 19 Reserved // vector 20 WOVI __interrupt(vect=20) void INT_WOVI(void) {/* sleep(); */} // vector 21 CMI __interrupt(vect=21) void INT_CMI(void) {/* sleep(); */} // vector 22 Reserved // vector 23 Reserved // vector 24 IMIA0 立ち上がりエッジ __interrupt(vect=24) void INT_IMIA0(void) { Wave |= 0x02; //クロック信号をHにする switch(Stat){ case 0: V_clock--; //垂直同期:リセット信号 座標軸X:0 Y:0にリセットする if(V_clock == 0){ Stat=1; //リセット期間:1/25Mhz * GRB * 153 (s) } break; case 1: //ブランク期間 1/25Mhz * GRB * 323 (s) H_clock--; if(H_clock == 0){ //ブランク期間のみ323クロック後、リセット Wave |= 0x04; //水平同期パルス:H H_clock = H_table[0]; Y_div++; } if(Y_div == 16){ //16(行)回繰り返す H_clock = H_table[1]; Stat = 2; Y_div = 0; } break; case 2: //ブランク期間:107 画像表示期間:400 H_clock--; //ブランク期間 + 画像表示期間 = 507クロック if(H_clock <= 400 ){ //画像表示期間:107から507までの400 Data_Out(X_div,Y_div); //画像データをセット X_div++; //X軸をカウント } if(H_clock == 0){ H_clock = H_table[1]; Wave |= 0x04; //水平同期パルス:H X_div = 0; Y_div++; //Y軸をカウント } if(Y_div == 96){ H_clock = H_table[0]; Y_div = 0; V_clock = V_table; Stat = 0; Wave |= 0x08; } break; } PA.DR.BYTE |= Wave; ITU0.TSR.BIT.IMFA = 0; // 割込み検知フラグを戻して再開 } // vector 25 IMIB0 立下りエッジ __interrupt(vect=25) void INT_IMIB0(void) { Wave &= ~0x06; //クロックと水平同期パルスをLレベルにする if(V_clock == 0){ //垂直同期パルスをLレベルにする Wave &= ~0x08; //153クロック後、Lレベルへ } PA.DR.BYTE = Wave; ITU0.TSR.BIT.IMFB=0; } // vector 26 OVI0 __interrupt(vect=26) void INT_OVI0(void) {/* sleep(); */} // vector 27 Reserved // vector 28 IMIA1 __interrupt(vect=28) void INT_IMIA1(void) {/* sleep(); */} // vector 29 IMIB1 __interrupt(vect=29) void INT_IMIB1(void) {/* sleep(); */} // vector 30 OVI1 __interrupt(vect=30) void INT_OVI1(void) {/* sleep(); */} // vector 31 Reserved // vector 32 IMIA2 __interrupt(vect=32) void INT_IMIA2(void) {/* sleep(); */} // vector 33 IMIB2 __interrupt(vect=33) void INT_IMIB2(void) {/* sleep(); */} // vector 34 OVI2 __interrupt(vect=34) void INT_OVI2(void) {/* sleep(); */} // vector 35 Reserved // vector 36 IMIA3 __interrupt(vect=36) void INT_IMIA3(void) {/* sleep(); */} // vector 37 IMIB3 __interrupt(vect=37) void INT_IMIB3(void) {/* sleep(); */} // vector 38 OVI3 __interrupt(vect=38) void INT_OVI3(void) {/* sleep(); */} // vector 39 Reserved // vector 40 IMIA4 __interrupt(vect=40) void INT_IMIA4(void) {/* sleep(); */} // vector 41 IMIB4 __interrupt(vect=41) void INT_IMIB4(void) {/* sleep(); */} // vector 42 OVI4 __interrupt(vect=42) void INT_OVI4(void) {/* sleep(); */} // vector 43 Reserved // vector 44 DEND0A __interrupt(vect=44) void INT_DEND0A(void) {/* sleep(); */} // vector 45 DEND0B __interrupt(vect=45) void INT_DEND0B(void) {/* sleep(); */} // vector 46 DEND1A __interrupt(vect=46) void INT_DEND1A(void) {/* sleep(); */} // vector 47 DEND1B __interrupt(vect=47) void INT_DEND1B(void) {/* sleep(); */} // vector 48 Reserved // vector 49 Reserved // vector 50 Reserved // vector 51 Reserved // vector 52 ERI0 __interrupt(vect=52) void INT_ERI0(void) {/* sleep(); */} // vector 53 RXI0 __interrupt(vect=53) void INT_RXI0(void) {/* sleep(); */} // vector 54 TXI0 __interrupt(vect=54) void INT_TXI0(void) {/* sleep(); */} // vector 55 TEI0 __interrupt(vect=55) void INT_TEI0(void) {/* sleep(); */} // vector 56 ERI1 __interrupt(vect=56) void INT_ERI1(void) {/* sleep(); */} // vector 57 RXI1 __interrupt(vect=57) void INT_RXI1(void) {/* sleep(); */} // vector 58 TXI1 __interrupt(vect=58) void INT_TXI1(void) {/* sleep(); */} // vector 59 TEI1 __interrupt(vect=59) void INT_TEI1(void) {/* sleep(); */} // vector 60 ADI __interrupt(vect=60) void INT_ADI(void) {/* sleep(); */}