|
@@ -6,7 +6,7 @@
|
|
|
#define LED_ONE_PERIOD 2
|
|
|
#define LED_DIGITS_NUM 8
|
|
|
|
|
|
-/* LED
|
|
|
+/* LED segments pins
|
|
|
AAA
|
|
|
F B
|
|
|
F B
|
|
@@ -15,46 +15,54 @@ E C
|
|
|
E C
|
|
|
DDD P
|
|
|
*/
|
|
|
-#define LED_SEG1_PORT GPIOA
|
|
|
-#define LED_SEG1_PINS GPIO_PIN_3
|
|
|
-#define LED_SEG_DP GPIO_PIN_3
|
|
|
+#define LED_SEG_CG_ODR GPIOA->ODR
|
|
|
+#define LED_SEG_C GPIO_PIN_1
|
|
|
+#define LED_SEG_G GPIO_PIN_2
|
|
|
+#define LED_SEG_CG (LED_SEG_C | LED_SEG_G)
|
|
|
+#define LED_SEG_CG_ON(a) LED_SEG_CG_ODR &= ~(a)
|
|
|
|
|
|
-#define LED_SEG3_PORT GPIOC
|
|
|
-#define LED_SEG3_PINS (GPIO_PIN_4 | GPIO_PIN_6 | GPIO_PIN_7 | GPIO_PIN_3 | GPIO_PIN_5)
|
|
|
-#define LED_SEG_A GPIO_PIN_3
|
|
|
-#define LED_SEG_F GPIO_PIN_4
|
|
|
-#define LED_SEG_B GPIO_PIN_5
|
|
|
-#define LED_SEG_E GPIO_PIN_6
|
|
|
-#define LED_SEG_G GPIO_PIN_7
|
|
|
+#define LED_SEG_DH_ODR GPIOB->ODR
|
|
|
+#define LED_SEG_H GPIO_PIN_4
|
|
|
+#define LED_SEG_D GPIO_PIN_5
|
|
|
+#define LED_SEG_DH (LED_SEG_D | LED_SEG_H)
|
|
|
+#define LED_SEG_DH_ON(a) LED_SEG_DH_ODR &= ~(a)
|
|
|
|
|
|
-#define LED_SEG2_PORT GPIOD
|
|
|
-#define LED_SEG2_PINS (GPIO_PIN_1 | GPIO_PIN_4)
|
|
|
-#define LED_SEG_C GPIO_PIN_1
|
|
|
-#define LED_SEG_D GPIO_PIN_4
|
|
|
+#define LED_SEG_BE_ODR GPIOC->ODR
|
|
|
+#define LED_SEG_B GPIO_PIN_6
|
|
|
+#define LED_SEG_E GPIO_PIN_7
|
|
|
+#define LED_SEG_BE (LED_SEG_B | LED_SEG_E)
|
|
|
+#define LED_SEG_BE_ON(a) LED_SEG_BE_ODR &= ~(a)
|
|
|
|
|
|
-#define LED_OUT_OFF {LED_SEG1_PORT->ODR |= LED_SEG1_PINS; LED_SEG2_PORT->ODR |= LED_SEG2_PINS; LED_SEG3_PORT->ODR |= LED_SEG3_PINS;}
|
|
|
-#define LED_OUT_DP GPIOA->ODR &= ~LED_SEG_DP
|
|
|
-#define LED_OUT_MM GPIOC->ODR &= ~LED_SEG_G
|
|
|
-#define LED_OUT_0 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B|LED_SEG_E|LED_SEG_F); GPIOD->ODR &= ~(LED_SEG2_PINS)
|
|
|
-#define LED_OUT_1 GPIOC->ODR &= ~(LED_SEG_B); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
-#define LED_OUT_2 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B|LED_SEG_E|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG_D)
|
|
|
-#define LED_OUT_3 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG2_PINS)
|
|
|
-#define LED_OUT_4 GPIOC->ODR &= ~(LED_SEG_B|LED_SEG_F|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
-#define LED_OUT_5 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_F|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG2_PINS)
|
|
|
-#define LED_OUT_6 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_E|LED_SEG_F|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG2_PINS)
|
|
|
-#define LED_OUT_7 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
-#define LED_OUT_8 GPIOC->ODR &= ~(LED_SEG3_PINS); GPIOD->ODR &= ~(LED_SEG2_PINS)
|
|
|
-#define LED_OUT_9 GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B|LED_SEG_F|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG2_PINS)
|
|
|
-#define LED_OUT_H GPIOC->ODR &= ~(LED_SEG_B|LED_SEG_E|LED_SEG_F|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
-#define LED_OUT_PL GPIOC->ODR &= ~(LED_SEG_B|LED_SEG_G); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
-#define LED_OUT_O GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B|LED_SEG_F|LED_SEG_G);
|
|
|
-#define LED_OUT_U GPIOC->ODR &= ~(LED_SEG_B|LED_SEG_F|LED_SEG_E|LED_SEG_D); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
-#define LED_OUT_A GPIOC->ODR &= ~(LED_SEG_A|LED_SEG_B|LED_SEG_E|LED_SEG_F); GPIOD->ODR &= ~(LED_SEG_C)
|
|
|
+#define LED_SEG_AF_ODR GPIOD->ODR
|
|
|
+#define LED_SEG_A GPIO_PIN_1
|
|
|
+#define LED_SEG_F GPIO_PIN_2
|
|
|
+#define LED_SEG_AF (LED_SEG_A | LED_SEG_A)
|
|
|
+#define LED_SEG_AF_ON(a) LED_SEG_AF_ODR &= ~(a)
|
|
|
+
|
|
|
+/* LED symbols */
|
|
|
+#define LED_OUT_OFF {LED_SEG_CG_ODR |= LED_SEG_CG; LED_SEG_DH_ODR |= LED_SEG_DH; LED_SEG_BE_ODR |= LED_SEG_BE; LED_SEG_AF_ODR |= LED_SEG_AF;}
|
|
|
+#define LED_OUT_DP LED_SEG_DH_ON(LED_SEG_H)
|
|
|
+#define LED_OUT_MM LED_SEG_CG_ON(LED_SEG_G)
|
|
|
+#define LED_OUT_0 LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_BE_ON(LED_SEG_BE); LED_SEG_CG_ON(LED_SEG_C); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_1 LED_SEG_BE_ON(LED_SEG_B); LED_SEG_CG_ON(LED_SEG_C)
|
|
|
+#define LED_OUT_2 LED_SEG_AF_ON(LED_SEG_A); LED_SEG_BE_ON(LED_SEG_BE); LED_SEG_CG_ON(LED_SEG_G); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_3 LED_SEG_AF_ON(LED_SEG_A); LED_SEG_BE_ON(LED_SEG_B); LED_SEG_CG_ON(LED_SEG_CG); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_4 LED_SEG_BE_ON(LED_SEG_B); LED_SEG_AF_ON(LED_SEG_F); LED_SEG_CG_ON(LED_SEG_CG)
|
|
|
+#define LED_OUT_5 LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_CG_ON(LED_SEG_CG); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_6 LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_BE_ON(LED_SEG_E); LED_SEG_CG_ON(LED_SEG_CG); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_7 LED_SEG_AF_ON(LED_SEG_A); LED_SEG_BE_ON(LED_SEG_B); LED_SEG_CG_ON(LED_SEG_C)
|
|
|
+#define LED_OUT_8 LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_CG_ON(LED_SEG_CG); LED_SEG_BE_ON(LED_SEG_BE); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_9 LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_BE_ON(LED_SEG_B); LED_SEG_CG_ON(LED_SEG_CG); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_H LED_SEG_BE_ON(LED_SEG_BE); LED_SEG_AF_ON(LED_SEG_F); LED_SEG_CG_ON(LED_SEG_CG)
|
|
|
+#define LED_OUT_PL LED_SEG_BE_ON(LED_SEG_B); LED_SEG_CG_ON(LED_SEG_CG)
|
|
|
+#define LED_OUT_O LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_BE_ON(LED_SEG_B); LED_SEG_CG_ON(LED_SEG_G);
|
|
|
+#define LED_OUT_U LED_SEG_AF_ON(LED_SEG_F); LED_SEG_BE_ON(LED_SEG_BE); LED_SEG_CG_ON(LED_SEG_C); LED_SEG_DH_ON(LED_SEG_D)
|
|
|
+#define LED_OUT_A LED_SEG_AF_ON(LED_SEG_AF); LED_SEG_BE_ON(LED_SEG_BE); LED_SEG_CG_ON(LED_SEG_C)
|
|
|
|
|
|
/* shift register control pins */
|
|
|
-#define SPI_PORT GPIOA
|
|
|
-#define SPI_SCK GPIO_PIN_1
|
|
|
-#define SPI_DATA GPIO_PIN_2
|
|
|
+#define SPI_PORT GPIOC
|
|
|
+#define SPI_SCK GPIO_PIN_5
|
|
|
+#define SPI_DATA GPIO_PIN_3
|
|
|
|
|
|
typedef enum {
|
|
|
led_Plus = 0xa,
|