#include <stdint.h>
-#define K0 (1 << 0)
-#define K1 (1 << 1)
-#define K2 (1 << 2)
-#define K3 (1 << 3)
-#define K4 (1 << 4)
-#define K5 (1 << 5)
-#define K6 (1 << 6)
-#define K7 (1 << 7)
-#define K8 (1 << 8)
-#define K9 (1 << 9)
-#define KS (1 << 10)
-#define KP (1 << 11)
+#define K0 (uint16_t)(1 << 0)
+#define K1 (uint16_t)(1 << 1)
+#define K2 (uint16_t)(1 << 2)
+#define K3 (uint16_t)(1 << 3)
+#define K4 (uint16_t)(1 << 4)
+#define K5 (uint16_t)(1 << 5)
+#define K6 (uint16_t)(1 << 6)
+#define K7 (uint16_t)(1 << 7)
+#define K8 (uint16_t)(1 << 8)
+#define K9 (uint16_t)(1 << 9)
+#define KS (uint16_t)(1 << 10)
+#define KP (uint16_t)(1 << 11)
void keypad_init(void);
#include <keypad.h>
#include <gpio.h>
-#define PIN_0 GPIO_PORT(A, 11)
-#define PIN_1 GPIO_PORT(B, 13)
-#define PIN_2 GPIO_PORT(B, 2)
-#define PIN_3 GPIO_PORT(A, 12)
-#define PIN_4 GPIO_PORT(B, 14)
-#define PIN_5 GPIO_PORT(B, 11)
-#define PIN_6 GPIO_PORT(C, 5)
-#define PIN_7 GPIO_PORT(B, 15)
-#define PIN_8 GPIO_PORT(B, 12)
-#define PIN_9 GPIO_PORT(C, 6)
-#define PIN_S GPIO_PORT(B, 1)
-#define PIN_P GPIO_PORT(C, 8)
+#define PIN_0 GPIO_PORT(B, 2)
+#define PIN_1 GPIO_PORT(B, 1)
+#define PIN_2 GPIO_PORT(A, 11)
+#define PIN_3 GPIO_PORT(C, 8)
+#define PIN_4 GPIO_PORT(B, 15)
+#define PIN_5 GPIO_PORT(B, 12)
+#define PIN_6 GPIO_PORT(C, 6)
+#define PIN_7 GPIO_PORT(B, 14)
+#define PIN_8 GPIO_PORT(B, 11)
+#define PIN_9 GPIO_PORT(C, 5)
+#define PIN_S GPIO_PORT(B, 13)
+#define PIN_P GPIO_PORT(A, 12)
typedef struct {
GPIO_TypeDef *port;
gpio_mode(p, pin, OUTPUT);
gpio_dout(p, pin, 0);
gpio_mode(p, pin, INPUT);
- gpio_pupd(p, pin, PULLDOWN);
+ //gpio_pupd(p, pin, PULLDOWN);
}
}
int main(void)\r
{\r
asm("cpsid i");\r
+ // disable cached writes for precise debug info\r
+ //*((uint32_t *)0xE000E008) |= 2;\r
\r
// prepare flash latency for 80MHz operation\r
FLASH->ACR &= ~(FLASH_ACR_LATENCY);\r
while (1) {\r
gpio_dout(GPIOA, 5,\r
(keypad_isdown(K0)));\r
+ delay(10);\r
/*gpio_dout(GPIOA, 5, 1);\r
delay(250);\r
gpio_dout(GPIOA, 5, 0);\r