di0ib 6 years ago
parent
commit
bcd8e2cd90
1 changed files with 24 additions and 21 deletions
  1. 24
    21
      keyboard/5x5x9/matrix.c

+ 24
- 21
keyboard/5x5x9/matrix.c View File



void matrix_init(void) void matrix_init(void)
{ {
// disable JTAG SWD
AFIO->MAPR = AFIO_MAPR_SWJ_CFG_DISABLE;

// initialize row and col // initialize row and col
unselect_rows(); unselect_rows();
init_cols(); init_cols();
{ {
palSetPadMode(GPIOB, 11, PAL_MODE_INPUT_PULLUP); palSetPadMode(GPIOB, 11, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 10, PAL_MODE_INPUT_PULLUP); palSetPadMode(GPIOB, 10, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 2, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 7, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 1, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 2, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOB, 0, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 7, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 6, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 5, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 4, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 3, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 2, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 1, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOA, 0, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLUP); palSetPadMode(GPIOC, 15, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLUP); palSetPadMode(GPIOC, 14, PAL_MODE_INPUT_PULLUP);
palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLUP); palSetPadMode(GPIOC, 13, PAL_MODE_INPUT_PULLUP);
| ((palReadPad(GPIOA, 2)==PAL_HIGH) ? 0 : (1<<9)) | ((palReadPad(GPIOA, 2)==PAL_HIGH) ? 0 : (1<<9))
| ((palReadPad(GPIOA, 1)==PAL_HIGH) ? 0 : (1<<10)) | ((palReadPad(GPIOA, 1)==PAL_HIGH) ? 0 : (1<<10))
| ((palReadPad(GPIOA, 0)==PAL_HIGH) ? 0 : (1<<11)) | ((palReadPad(GPIOA, 0)==PAL_HIGH) ? 0 : (1<<11))
| ((palReadPad(GPIOC, 15)==PAL_HIGH) ? 0 : (1<<12))
| ((palReadPad(GPIOC, 14)==PAL_HIGH) ? 0 : (1<<13))
| ((palReadPad(GPIOC, 13)==PAL_HIGH) ? 0 : (1<<14));
| ((palReadPad(GPIOC, 15)==PAL_HIGH) ? 0 : (1<<12))
| ((palReadPad(GPIOC, 14)==PAL_HIGH) ? 0 : (1<<13))
| ((palReadPad(GPIOC, 13)==PAL_HIGH) ? 0 : (1<<14));
} }


/* Row pin configuration /* Row pin configuration
palClearPad(GPIOB, 5); palClearPad(GPIOB, 5);
break; break;
case 3: case 3:
palSetPadMode(GPIOB, 4, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 4);
palSetPadMode(GPIOB, 4, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 4);
break; break;
case 4: case 4:
palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 3);
palSetPadMode(GPIOB, 3, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOB, 3);
break; break;
case 5: case 5:
palSetPadMode(GPIOA, 15, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(GPIOA, 15, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 10); palClearPad(GPIOA, 10);
break; break;
case 9: case 9:
palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 9);
palSetPadMode(GPIOA, 9, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 9);
break; break;
case 10: case 10:
palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 8);
palSetPadMode(GPIOA, 8, PAL_MODE_OUTPUT_PUSHPULL);
palClearPad(GPIOA, 8);
break; break;
case 11: case 11:
palSetPadMode(GPIOB, 15, PAL_MODE_OUTPUT_PUSHPULL); palSetPadMode(GPIOB, 15, PAL_MODE_OUTPUT_PUSHPULL);

Loading…
Cancel
Save