Version 1.0
This commit is contained in:
200
Core/Src/DS_SingleDigitDisplay.c
Normal file
200
Core/Src/DS_SingleDigitDisplay.c
Normal file
@@ -0,0 +1,200 @@
|
||||
|
||||
#include "DS_SingleDigitDisplay.h"
|
||||
|
||||
void DS_SingleDisplayInit(DS_SingleDigitDisplay *Display, GPIO_TypeDef *Port_A, uint16_t Pin_A, GPIO_TypeDef *Port_B, uint16_t Pin_B, GPIO_TypeDef *Port_C, uint16_t Pin_C, GPIO_TypeDef *Port_D, uint16_t Pin_D, GPIO_TypeDef *Port_E, uint16_t Pin_E, GPIO_TypeDef *Port_F, uint16_t Pin_F, GPIO_TypeDef *Port_G, uint16_t Pin_G, GPIO_TypeDef *Port_DP, uint16_t Pin_DP)
|
||||
{
|
||||
Display->Port_A = Port_A;
|
||||
Display->Port_B = Port_B;
|
||||
Display->Port_C = Port_C;
|
||||
Display->Port_D = Port_D;
|
||||
Display->Port_E = Port_E;
|
||||
Display->Port_F = Port_F;
|
||||
Display->Port_G = Port_G;
|
||||
Display->Port_DP = Port_DP;
|
||||
|
||||
Display->Pin_A = Pin_A;
|
||||
Display->Pin_B = Pin_B;
|
||||
Display->Pin_C = Pin_C;
|
||||
Display->Pin_D = Pin_D;
|
||||
Display->Pin_E = Pin_E;
|
||||
Display->Pin_F = Pin_F;
|
||||
Display->Pin_G = Pin_G;
|
||||
Display->Pin_DP = Pin_DP;
|
||||
|
||||
DS_SingleDisplayPoint(Display, false);
|
||||
}
|
||||
|
||||
void DS_SingleDisplayPrint(DS_SingleDigitDisplay *Display, uint8_t Digit)
|
||||
{
|
||||
switch (Digit)
|
||||
{
|
||||
case 0:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_SET);
|
||||
break;
|
||||
case 1:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_SET);
|
||||
break;
|
||||
case 2:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 3:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 4:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 5:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 6:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 7:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_SET);
|
||||
break;
|
||||
case 8:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 9:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 10:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 11:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 12:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_SET);
|
||||
break;
|
||||
case 13:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 14:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
case 15:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_RESET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_RESET);
|
||||
break;
|
||||
|
||||
default:
|
||||
HAL_GPIO_WritePin(Display->Port_A, Display->Pin_A, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_B, Display->Pin_B, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_C, Display->Pin_C, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_D, Display->Pin_D, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_E, Display->Pin_E, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_F, Display->Pin_F, GPIO_PIN_SET);
|
||||
HAL_GPIO_WritePin(Display->Port_G, Display->Pin_G, GPIO_PIN_SET);
|
||||
break;
|
||||
}
|
||||
DS_SingleDisplayPoint(Display, Display->DotEnable);
|
||||
}
|
||||
|
||||
void DS_SingleDisplayPoint(DS_SingleDigitDisplay *Display, bool Enable)
|
||||
{
|
||||
Display->DotEnable = Enable;
|
||||
if (Enable)
|
||||
{
|
||||
HAL_GPIO_WritePin(Display->Port_DP, Display->Pin_DP, GPIO_PIN_RESET);
|
||||
}
|
||||
else
|
||||
{
|
||||
HAL_GPIO_WritePin(Display->Port_DP, Display->Pin_DP, GPIO_PIN_SET);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user