Version 1.1
This commit is contained in:
110
Core/Src/main.c
110
Core/Src/main.c
@@ -21,7 +21,8 @@
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
|
||||
#include "DS_MAX7219.h"
|
||||
#include "DS_Button.h"
|
||||
/* USER CODE END Includes */
|
||||
|
||||
/* Private typedef -----------------------------------------------------------*/
|
||||
@@ -91,62 +92,14 @@ int main(void)
|
||||
MX_SPI1_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
DS_MAX7219 Display;
|
||||
DS_MAX7219_Init(&Display, &hspi1, CS_GPIO_Port, CS_Pin);
|
||||
|
||||
DS_Button ButtonUP, ButtonDown;
|
||||
DS_ButtonInit(&ButtonUP, Button1_GPIO_Port, Button1_Pin);
|
||||
DS_ButtonInit(&ButtonDown, Button2_GPIO_Port, Button2_Pin);
|
||||
|
||||
//регистр данные шеснадцатеричное представление регистра
|
||||
//0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0xC
|
||||
//0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 0хF
|
||||
|
||||
|
||||
|
||||
//Алгоритм
|
||||
//1. вывести микросхему из режима выключения
|
||||
//2. заставить выводить все 8 цифр
|
||||
//3. Установить яркость на половину
|
||||
//4. Во все регистры цифр записать данные. Цифры от 1 до 8
|
||||
|
||||
// 0x0C + 0x01
|
||||
// 0x0B + 0x07
|
||||
// 0x0A + 0x08
|
||||
// регистры 1-8
|
||||
|
||||
uint16_t Data[1];
|
||||
|
||||
Data[0] = 0xC01;
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)Data, 1, 100);
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
|
||||
Data[0] = 0xF00;
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)Data, 1, 100);
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
Data[0] = 0xB07;
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)Data, 1, 100);
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
Data[0] = 0xA08;
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)Data, 1, 100);
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
Data[0] = 0x9FF;
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)Data, 1, 100);
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
|
||||
|
||||
for (uint8_t i = 0; i < 8; i++)
|
||||
{
|
||||
Data[0] = 0x100 + (i<<8) + i;
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_RESET);
|
||||
HAL_SPI_Transmit(&hspi1, (uint8_t*)Data, 1, 100);
|
||||
HAL_GPIO_WritePin(CS_GPIO_Port, CS_Pin, GPIO_PIN_SET);
|
||||
}
|
||||
|
||||
|
||||
int64_t DisplayData = 0;
|
||||
|
||||
/* USER CODE END 2 */
|
||||
|
||||
@@ -154,6 +107,53 @@ int main(void)
|
||||
/* USER CODE BEGIN WHILE */
|
||||
while (1)
|
||||
{
|
||||
|
||||
DS_ButtonUpdate(&ButtonUP);
|
||||
DS_ButtonUpdate(&ButtonDown);
|
||||
|
||||
|
||||
if(DS_ButtonRisingEdge(&ButtonUP))
|
||||
{
|
||||
DisplayData++;
|
||||
DS_MAX7219_Print(&Display, DisplayData);
|
||||
DS_MAX7219_UpdateDisplay(&Display);
|
||||
}
|
||||
|
||||
if(DS_ButtonRisingEdge(&ButtonDown))
|
||||
{
|
||||
DisplayData--;
|
||||
DS_MAX7219_Print(&Display, DisplayData);
|
||||
DS_MAX7219_UpdateDisplay(&Display);
|
||||
}
|
||||
|
||||
if(DS_Button_PressedLong(&ButtonUP))
|
||||
{
|
||||
DisplayData = DisplayData + 10;
|
||||
DS_MAX7219_Print(&Display, DisplayData);
|
||||
DS_MAX7219_UpdateDisplay(&Display);
|
||||
}
|
||||
|
||||
if(DS_Button_PressedLong(&ButtonDown))
|
||||
{
|
||||
DisplayData = DisplayData - 10;
|
||||
DS_MAX7219_Print(&Display, DisplayData);
|
||||
DS_MAX7219_UpdateDisplay(&Display);
|
||||
}
|
||||
|
||||
if(DS_Button_PressedLongLong(&ButtonUP))
|
||||
{
|
||||
DisplayData = DisplayData + 100;
|
||||
DS_MAX7219_Print(&Display, DisplayData);
|
||||
DS_MAX7219_UpdateDisplay(&Display);
|
||||
}
|
||||
|
||||
if(DS_Button_PressedLongLong(&ButtonDown))
|
||||
{
|
||||
DisplayData = DisplayData - 100;
|
||||
DS_MAX7219_Print(&Display, DisplayData);
|
||||
DS_MAX7219_UpdateDisplay(&Display);
|
||||
}
|
||||
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
/* USER CODE BEGIN 3 */
|
||||
|
||||
Reference in New Issue
Block a user