You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
154 lines
6.8 KiB
154 lines
6.8 KiB
#include "check_pin.h"
|
|
#include "r_cg_port.h"
|
|
#include <stdint.h>
|
|
|
|
void Gate_SetByNum(uint8_t num, uint8_t hash_on, uint8_t anaout_on, uint8_t check_on)
|
|
{
|
|
switch (num)
|
|
{
|
|
case 1: /* HASH P153(P15.3), ANAOUT P64(P6.4), CHECK P154(P15.4) */
|
|
P15 = hash_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P153 */
|
|
P6 = anaout_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P64 */
|
|
P15 = check_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P154 */
|
|
break;
|
|
|
|
case 2: /* P152(P15.2), P65(P6.5), P155(P15.5) */
|
|
P15 = hash_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P152 */
|
|
P6 = anaout_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P65 */
|
|
P15 = check_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P155 */
|
|
break;
|
|
|
|
case 3: /* P151(P15.1), P66(P6.6), P00(P0.0) */
|
|
P15 = hash_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P151 */
|
|
P6 = anaout_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P66 */
|
|
P0 = check_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P00 */
|
|
break;
|
|
|
|
case 4: /* P150(P15.0), P67(P6.7), P156(P15.6) */
|
|
P15 = hash_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P150 */
|
|
P6 = anaout_on ? _80_Pn7_OUTPUT_1 : _00_Pn7_OUTPUT_0; /* P67 */
|
|
P15 = check_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P156 */
|
|
break;
|
|
|
|
case 5: /* P120(P12.0), P44(P4.4), P30(P3.0) */
|
|
P12 = hash_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P120 */
|
|
P4 = anaout_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P44 */
|
|
P3 = check_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P30 */
|
|
break;
|
|
|
|
case 6: /* P125(P12.5), P43(P4.3), P32(P3.2) */
|
|
P12 = hash_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P125 */
|
|
P4 = anaout_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P43 */
|
|
P3 = check_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P32 */
|
|
break;
|
|
|
|
case 7: /* P01(P0.1), P42(P4.2), P03(P0.3) */
|
|
P0 = hash_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P01 */
|
|
P4 = anaout_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P42 */
|
|
P0 = check_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P03 */
|
|
break;
|
|
|
|
case 8: /* P126(P12.6), P41(P4.1), P70(P7.0) */
|
|
P12 = hash_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P126 */
|
|
P4 = anaout_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P41 */
|
|
P7 = check_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P70 */
|
|
break;
|
|
|
|
case 9: /* P127(P12.7), P50(P5.0), P71(P7.1) */
|
|
P12 = hash_on ? _80_Pn7_OUTPUT_1 : _00_Pn7_OUTPUT_0; /* P127 */
|
|
P5 = anaout_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P50 */
|
|
P7 = check_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P71 */
|
|
break;
|
|
|
|
case 10: /* P02(P0.2), P51(P5.1), P104(P10.4) */
|
|
P0 = hash_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P02 */
|
|
P5 = anaout_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P51 */
|
|
P10 = check_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P104 */
|
|
break;
|
|
|
|
case 11: /* P103(P10.3), P52(P5.2), P105(P10.5) */
|
|
P10 = hash_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P103 */
|
|
P5 = anaout_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P52 */
|
|
P10 = check_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P105 */
|
|
break;
|
|
|
|
case 12: /* P102(P10.2), P60(P6.0), P106(P10.6) */
|
|
P10 = hash_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P102 */
|
|
P6 = anaout_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P60 */
|
|
P10 = check_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P106 */
|
|
break;
|
|
|
|
case 13: /* P101(P10.1), P61(P6.1), P107(P10.7) */
|
|
P10 = hash_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P101 */
|
|
P6 = anaout_on ? _02_Pn1_OUTPUT_1 : _00_Pn1_OUTPUT_0; /* P61 */
|
|
P10 = check_on ? _80_Pn7_OUTPUT_1 : _00_Pn7_OUTPUT_0; /* P107 */
|
|
break;
|
|
|
|
case 14: /* P100(P10.0), P72(P7.2), P57(P5.7) */
|
|
P10 = hash_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P100 */
|
|
P7 = anaout_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P72 */
|
|
P5 = check_on ? _80_Pn7_OUTPUT_1 : _00_Pn7_OUTPUT_0; /* P57 */
|
|
break;
|
|
|
|
case 15: /* P97(P9.7), P73(P7.3), P56(P5.6) */
|
|
P9 = hash_on ? _80_Pn7_OUTPUT_1 : _00_Pn7_OUTPUT_0; /* P97 */
|
|
P7 = anaout_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P73 */
|
|
P5 = check_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P56 */
|
|
break;
|
|
|
|
case 16: /* P96(P9.6), P75(P7.5), P55(P5.5) */
|
|
P9 = hash_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P96 */
|
|
P7 = anaout_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P75 */
|
|
P5 = check_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P55 */
|
|
break;
|
|
|
|
case 17: /* P95(P9.5), P74(P7.4), P54(P5.4) */
|
|
P9 = hash_on ? _20_Pn5_OUTPUT_1 : _00_Pn5_OUTPUT_0; /* P95 */
|
|
P7 = anaout_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P74 */
|
|
P5 = check_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P54 */
|
|
break;
|
|
|
|
case 18: /* P94(P9.4), P76(P7.6), P10(P1.0) */
|
|
P9 = hash_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P94 */
|
|
P7 = anaout_on ? _40_Pn6_OUTPUT_1 : _00_Pn6_OUTPUT_0; /* P76 */
|
|
P1 = check_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P10 */
|
|
break;
|
|
|
|
case 19: /* P93(P9.3), P77(P7.7), P13(P1.3) */
|
|
P9 = hash_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P93 */
|
|
P7 = anaout_on ? _80_Pn7_OUTPUT_1 : _00_Pn7_OUTPUT_0; /* P77 */
|
|
P1 = check_on ? _08_Pn3_OUTPUT_1 : _00_Pn3_OUTPUT_0; /* P13 */
|
|
break;
|
|
|
|
case 20: /* P92(P9.2), P130(P13.0), P14(P1.4) */
|
|
P9 = hash_on ? _04_Pn2_OUTPUT_1 : _00_Pn2_OUTPUT_0; /* P92 */
|
|
P13 = anaout_on ? _01_Pn0_OUTPUT_1 : _00_Pn0_OUTPUT_0; /* P130 */
|
|
P1 = check_on ? _10_Pn4_OUTPUT_1 : _00_Pn4_OUTPUT_0; /* P14 */
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void Col_Init(void){
|
|
uint8_t i;
|
|
|
|
P4 = _00_Pn7_OUTPUT_0;
|
|
P15 = _00_Pn7_OUTPUT_0;
|
|
|
|
for (i = 1; i <= 20; i++){
|
|
Gate_SetByNum(i, 0, 0, 1); // hash=0, anaout=0, check=1
|
|
}
|
|
}
|
|
|
|
void Eol_Init(void){
|
|
uint8_t i;
|
|
P4 = _80_Pn7_OUTPUT_1;
|
|
P15 = _00_Pn7_OUTPUT_0;
|
|
|
|
for (i = 1; i <= 20; i++){
|
|
Gate_SetByNum(i, 0, 0, 1); // hash=0, anaout=0, check=1
|
|
}
|
|
}
|
|
|
|
|