期末大作业-增加了显示时间、设置时间的功能,已基本完成功能。
设置时间的功能使用Cursor生成。 为了减少误差,专门调整了时钟周期。
This commit is contained in:
		
							parent
							
								
									324328bd25
								
							
						
					
					
						commit
						2fb33e955c
					
				
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@ -11,6 +11,8 @@ typedef struct {
 | 
				
			|||||||
    uint8_t bTenMilSecOk;           // 10毫秒标志位
 | 
					    uint8_t bTenMilSecOk;           // 10毫秒标志位
 | 
				
			||||||
    uint8_t mTimeCount;             // 秒计数
 | 
					    uint8_t mTimeCount;             // 秒计数
 | 
				
			||||||
    uint8_t bTimeOk;                // 秒标志位
 | 
					    uint8_t bTimeOk;                // 秒标志位
 | 
				
			||||||
 | 
					    uint8_t mHundredMilSecCount;    // 百微秒计数
 | 
				
			||||||
 | 
					    uint8_t bHundredMilSecOk;       // 百微秒标志位
 | 
				
			||||||
} stSysTickTimer;
 | 
					} stSysTickTimer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct {
 | 
					typedef struct {
 | 
				
			||||||
@ -23,6 +25,16 @@ typedef struct {
 | 
				
			|||||||
  uint8_t bTenMilIsOk;
 | 
					  uint8_t bTenMilIsOk;
 | 
				
			||||||
} structTime;
 | 
					} structTime;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum {
 | 
				
			||||||
 | 
					    SET_HOUR_TENS,    // 小时十位
 | 
				
			||||||
 | 
					    SET_HOUR_ONES,    // 小时个位
 | 
				
			||||||
 | 
					    SET_MIN_TENS,     // 分钟十位
 | 
				
			||||||
 | 
					    SET_MIN_ONES,     // 分钟个位
 | 
				
			||||||
 | 
					    SET_SEC_TENS,     // 秒十位
 | 
				
			||||||
 | 
					    SET_SEC_ONES,     // 秒个位
 | 
				
			||||||
 | 
					    SET_DONE          // 设置完成
 | 
				
			||||||
 | 
					} TIME_STATE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef __cplusplus
 | 
					#ifdef __cplusplus
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
				
			|||||||
@ -1,7 +1,9 @@
 | 
				
			|||||||
#include "main.h"
 | 
					#include "main.h"
 | 
				
			||||||
#include "variable.h"
 | 
					#include "variable.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern uint8_t is_setting_time;
 | 
				
			||||||
 | 
					extern TIME_STATE set_time_state;
 | 
				
			||||||
 | 
					extern uint8_t show_digit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint16_t display_tab[] = {
 | 
					uint16_t display_tab[] = {
 | 
				
			||||||
  0x3f,
 | 
					  0x3f,
 | 
				
			||||||
@ -20,7 +22,8 @@ uint16_t display_tab[] = {
 | 
				
			|||||||
  0x5e,
 | 
					  0x5e,
 | 
				
			||||||
  0x79,
 | 
					  0x79,
 | 
				
			||||||
  0x71,
 | 
					  0x71,
 | 
				
			||||||
  0x40
 | 
					  0x40,
 | 
				
			||||||
 | 
					  0x00
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
uint8_t DispBuff[8];
 | 
					uint8_t DispBuff[8];
 | 
				
			||||||
uint16_t PosSel = 0;
 | 
					uint16_t PosSel = 0;
 | 
				
			||||||
@ -28,6 +31,31 @@ uint16_t PosSel = 0;
 | 
				
			|||||||
static void DisplayOneLed(uint8_t dat, uint8_t pos, uint8_t dot) {
 | 
					static void DisplayOneLed(uint8_t dat, uint8_t pos, uint8_t dot) {
 | 
				
			||||||
  uint16_t temp;
 | 
					  uint16_t temp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (is_setting_time && !show_digit) {
 | 
				
			||||||
 | 
					    switch (set_time_state) {
 | 
				
			||||||
 | 
					      case SET_HOUR_TENS:
 | 
				
			||||||
 | 
					        if (pos == 0) dat = 17;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case SET_HOUR_ONES:
 | 
				
			||||||
 | 
					        if (pos == 1) dat = 17;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case SET_MIN_TENS:
 | 
				
			||||||
 | 
					        if (pos == 3) dat = 17;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case SET_MIN_ONES:
 | 
				
			||||||
 | 
					        if (pos == 4) dat = 17;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case SET_SEC_TENS:
 | 
				
			||||||
 | 
					        if (pos == 6) dat = 17;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      case SET_SEC_ONES:
 | 
				
			||||||
 | 
					        if (pos == 7) dat = 17;
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					      default:
 | 
				
			||||||
 | 
					        break;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  temp = display_tab[dat];
 | 
					  temp = display_tab[dat];
 | 
				
			||||||
  if (dot)
 | 
					  if (dot)
 | 
				
			||||||
    temp |= 0x80;
 | 
					    temp |= 0x80;
 | 
				
			||||||
 | 
				
			|||||||
@ -30,6 +30,7 @@
 | 
				
			|||||||
#include "SegLed.h"
 | 
					#include "SegLed.h"
 | 
				
			||||||
#include "MatrixKey.h"
 | 
					#include "MatrixKey.h"
 | 
				
			||||||
#include "gui.h"
 | 
					#include "gui.h"
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
/* USER CODE END Includes */
 | 
					/* USER CODE END Includes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Private typedef -----------------------------------------------------------*/
 | 
					/* Private typedef -----------------------------------------------------------*/
 | 
				
			||||||
@ -57,7 +58,7 @@ uint16_t mNum=15;
 | 
				
			|||||||
stSysTickTimer sSysTickTimer = {
 | 
					stSysTickTimer sSysTickTimer = {
 | 
				
			||||||
  0, 0, 0, 0
 | 
					  0, 0, 0, 0
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
uint8_t tempValue;
 | 
					uint8_t tempValue = 255;
 | 
				
			||||||
structTime stTime = {
 | 
					structTime stTime = {
 | 
				
			||||||
  .mSecond = 50,
 | 
					  .mSecond = 50,
 | 
				
			||||||
  .mMinute = 45,
 | 
					  .mMinute = 45,
 | 
				
			||||||
@ -69,8 +70,20 @@ structTime stTime = {
 | 
				
			|||||||
};
 | 
					};
 | 
				
			||||||
uint8_t KeyValue = 0;
 | 
					uint8_t KeyValue = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern uint8_t is_setting_time;
 | 
				
			||||||
 | 
					extern TIME_STATE set_time_state;
 | 
				
			||||||
 | 
					extern uint32_t blink_counter;
 | 
				
			||||||
 | 
					extern uint8_t show_digit;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum picture_index {
 | 
				
			||||||
 | 
					  NEURO_SAMA_SMALL,
 | 
				
			||||||
 | 
					  EVIL_NEURO_SMALL
 | 
				
			||||||
 | 
					} pic_index = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
extern const unsigned char gImage_qq[3200];
 | 
					extern const unsigned char gImage_qq[3200];
 | 
				
			||||||
extern const unsigned char gImage_Neuro_Sama[40704];
 | 
					extern const unsigned char gImage_Neuro_Sama[40704];
 | 
				
			||||||
 | 
					extern const unsigned char gImage_Neuro_Sama_small[10112];
 | 
				
			||||||
 | 
					extern const unsigned char gImage_Evil_Neuro_small[10240];
 | 
				
			||||||
/* USER CODE END PV */
 | 
					/* USER CODE END PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Private function prototypes -----------------------------------------------*/
 | 
					/* Private function prototypes -----------------------------------------------*/
 | 
				
			||||||
@ -81,30 +94,57 @@ void SystemClock_Config(void);
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* Private user code ---------------------------------------------------------*/
 | 
					/* Private user code ---------------------------------------------------------*/
 | 
				
			||||||
/* USER CODE BEGIN 0 */
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
void Gui_Drawbmp_full(uint16_t x,uint16_t y,const unsigned char *p) //显示159*128 图片
 | 
					void Gui_Drawbmp_full(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const unsigned char *p)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  int i;
 | 
					  int i;
 | 
				
			||||||
	unsigned char picH,picL;
 | 
						unsigned char picH,picL;
 | 
				
			||||||
	LCD_SetWindows(x,y,x+159-1,y+128-1);//窗口设置
 | 
						LCD_SetWindows(x,y,x+width-1,y+height-1);
 | 
				
			||||||
  for(i=0;i<159*128;i++)
 | 
					  for(i=0;i<width*height;i++)
 | 
				
			||||||
	{	
 | 
						{	
 | 
				
			||||||
	 	picL=*(p+i*2);	//数据低位在前
 | 
						 	picL=*(p+i*2);
 | 
				
			||||||
		picH=*(p+i*2+1);				
 | 
							picH=*(p+i*2+1);				
 | 
				
			||||||
		Lcd_WriteData_16Bit(picH<<8|picL);  						
 | 
							Lcd_WriteData_16Bit(picH<<8|picL);  						
 | 
				
			||||||
	}	
 | 
						}	
 | 
				
			||||||
	LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);//恢复显示窗口为全屏	
 | 
						LCD_SetWindows(0,0,lcddev.width-1,lcddev.height-1);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
void my_test(void)
 | 
					void my_init(void) {
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	LCD_direction(1);
 | 
						LCD_direction(1);
 | 
				
			||||||
  // LCD_Clear(WHITE);
 | 
						Gui_Drawbmp_full(0,0,159,128,gImage_Neuro_Sama);
 | 
				
			||||||
	// DrawTestPage("图片显示测试");
 | 
					 | 
				
			||||||
	//LCD_Fill(0,20,lcddev.width,lcddev.height-20,WHITE);
 | 
					 | 
				
			||||||
	Gui_Drawbmp_full(0,0,gImage_Neuro_Sama);
 | 
					 | 
				
			||||||
	// Show_Str(20+12,75,BLUE,YELLOW,"QQ",16,1);
 | 
					 | 
				
			||||||
	// Gui_Drawbmp16(70,30,gImage_qq);
 | 
					 | 
				
			||||||
	// Show_Str(70+12,75,BLUE,YELLOW,"QQ",16,1);
 | 
					 | 
				
			||||||
	HAL_Delay(1200);
 | 
						HAL_Delay(1200);
 | 
				
			||||||
 | 
					  LCD_Clear(WHITE);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					void refresh_picture() {
 | 
				
			||||||
 | 
					  switch (pic_index) {
 | 
				
			||||||
 | 
					    case NEURO_SAMA_SMALL:
 | 
				
			||||||
 | 
					      Gui_Drawbmp_full(40,50,79,64,gImage_Neuro_Sama_small);
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    case EVIL_NEURO_SMALL:
 | 
				
			||||||
 | 
					      Gui_Drawbmp_full(40,50,80,64,gImage_Evil_Neuro_small);
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					      break;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  pic_index = (pic_index + 1) % 2;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					void my_show_time(void) {
 | 
				
			||||||
 | 
					    char timeStr[20];
 | 
				
			||||||
 | 
					    sprintf(timeStr, "%02d:%02d:%02d", stTime.mHour, stTime.mMinute, stTime.mSecond);
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    if (is_setting_time && show_digit) {
 | 
				
			||||||
 | 
					        // 在设置模式下,根据当前设置的位置显示闪烁
 | 
				
			||||||
 | 
					        char mask[6] = {':', ':', '\0'};  // 用于保持冒号显示
 | 
				
			||||||
 | 
					        switch (set_time_state) {
 | 
				
			||||||
 | 
					            case SET_HOUR_TENS:  timeStr[0] = ' '; break;
 | 
				
			||||||
 | 
					            case SET_HOUR_ONES:  timeStr[1] = ' '; break;
 | 
				
			||||||
 | 
					            case SET_MIN_TENS:   timeStr[3] = ' '; break;
 | 
				
			||||||
 | 
					            case SET_MIN_ONES:   timeStr[4] = ' '; break;
 | 
				
			||||||
 | 
					            case SET_SEC_TENS:   timeStr[6] = ' '; break;
 | 
				
			||||||
 | 
					            case SET_SEC_ONES:   timeStr[7] = ' '; break;
 | 
				
			||||||
 | 
					            case SET_DONE:                         break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					    Show_Str(50, 10, BLUE, YELLOW, timeStr, 16, 0);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
/* USER CODE END 0 */
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -143,6 +183,8 @@ int main(void)
 | 
				
			|||||||
  HAL_TIM_Base_Start_IT(&htim3);
 | 
					  HAL_TIM_Base_Start_IT(&htim3);
 | 
				
			||||||
  TimeToBuff(&stTime);
 | 
					  TimeToBuff(&stTime);
 | 
				
			||||||
  LCD_Init();
 | 
					  LCD_Init();
 | 
				
			||||||
 | 
					  my_init();
 | 
				
			||||||
 | 
					  refresh_picture();
 | 
				
			||||||
  /* USER CODE END 2 */
 | 
					  /* USER CODE END 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  /* Infinite loop */
 | 
					  /* Infinite loop */
 | 
				
			||||||
@ -167,10 +209,17 @@ int main(void)
 | 
				
			|||||||
    // Chinese_Font_test();
 | 
					    // Chinese_Font_test();
 | 
				
			||||||
    // Pic_test();
 | 
					    // Pic_test();
 | 
				
			||||||
    // Rotate_Test();
 | 
					    // Rotate_Test();
 | 
				
			||||||
 | 
					    if (sSysTickTimer.bHundredMilSecOk) {
 | 
				
			||||||
 | 
					      sSysTickTimer.bHundredMilSecOk = 0;
 | 
				
			||||||
 | 
					      my_show_time();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if (sSysTickTimer.bTimeOk) {
 | 
					    if (sSysTickTimer.bTimeOk) {
 | 
				
			||||||
      sSysTickTimer.bTimeOk = 0;
 | 
					      sSysTickTimer.bTimeOk = 0;
 | 
				
			||||||
      HAL_GPIO_TogglePin(TickLed_GPIO_Port, TickLed_Pin);
 | 
					      HAL_GPIO_TogglePin(TickLed_GPIO_Port, TickLed_Pin);
 | 
				
			||||||
      my_test();
 | 
					    }
 | 
				
			||||||
 | 
					    if (tempValue == 10) {
 | 
				
			||||||
 | 
					      refresh_picture();
 | 
				
			||||||
 | 
					      tempValue = 255;
 | 
				
			||||||
    } 
 | 
					    } 
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  /* USER CODE END 3 */
 | 
					  /* USER CODE END 3 */
 | 
				
			||||||
 | 
				
			|||||||
@ -46,6 +46,14 @@
 | 
				
			|||||||
/* Private variables ---------------------------------------------------------*/
 | 
					/* Private variables ---------------------------------------------------------*/
 | 
				
			||||||
/* USER CODE BEGIN PV */
 | 
					/* USER CODE BEGIN PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					TIME_STATE set_time_state = SET_DONE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					uint8_t is_setting_time = 0;    // 是否在设置时间模式
 | 
				
			||||||
 | 
					uint32_t blink_counter = 0;     // 用于闪烁效果的计数器
 | 
				
			||||||
 | 
					uint8_t show_digit = 1;         // 用于闪烁效果
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern uint8_t tempValue;
 | 
				
			||||||
 | 
					extern structTime stTime;
 | 
				
			||||||
/* USER CODE END PV */
 | 
					/* USER CODE END PV */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* Private function prototypes -----------------------------------------------*/
 | 
					/* Private function prototypes -----------------------------------------------*/
 | 
				
			||||||
@ -56,6 +64,63 @@
 | 
				
			|||||||
/* Private user code ---------------------------------------------------------*/
 | 
					/* Private user code ---------------------------------------------------------*/
 | 
				
			||||||
/* USER CODE BEGIN 0 */
 | 
					/* USER CODE BEGIN 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void process_time_setting() {
 | 
				
			||||||
 | 
					    if (tempValue == 11) {  // 按键11用于进入/退出设置模式
 | 
				
			||||||
 | 
					        if (!is_setting_time) {
 | 
				
			||||||
 | 
					            is_setting_time = 1;
 | 
				
			||||||
 | 
					            set_time_state = SET_HOUR_TENS;
 | 
				
			||||||
 | 
					            show_digit = 1;
 | 
				
			||||||
 | 
					            blink_counter = 0;
 | 
				
			||||||
 | 
					        } else {
 | 
				
			||||||
 | 
					            is_setting_time = 0;
 | 
				
			||||||
 | 
					            set_time_state = SET_DONE;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        tempValue = 255;
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if (!is_setting_time || tempValue > 9) return;  // 只处理0-9的按键输入
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    switch (set_time_state) {
 | 
				
			||||||
 | 
					        case SET_HOUR_TENS:
 | 
				
			||||||
 | 
					            if (tempValue > 2) tempValue = 2;  // 限制小时十位最大为2
 | 
				
			||||||
 | 
					            stTime.mHour = tempValue * 10;
 | 
				
			||||||
 | 
					            set_time_state = SET_HOUR_ONES;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        case SET_HOUR_ONES:
 | 
				
			||||||
 | 
					            if (stTime.mHour == 20 && tempValue > 3) tempValue = 3;  // 如果十位是2,个位最大为3
 | 
				
			||||||
 | 
					            stTime.mHour = (stTime.mHour / 10) * 10 + tempValue;
 | 
				
			||||||
 | 
					            set_time_state = SET_MIN_TENS;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        case SET_MIN_TENS:
 | 
				
			||||||
 | 
					            if (tempValue > 5) tempValue = 5;  // 限制分钟十位最大为5
 | 
				
			||||||
 | 
					            stTime.mMinute = tempValue * 10;
 | 
				
			||||||
 | 
					            set_time_state = SET_MIN_ONES;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        case SET_MIN_ONES:
 | 
				
			||||||
 | 
					            stTime.mMinute = (stTime.mMinute / 10) * 10 + tempValue;
 | 
				
			||||||
 | 
					            set_time_state = SET_SEC_TENS;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        case SET_SEC_TENS:
 | 
				
			||||||
 | 
					            if (tempValue > 5) tempValue = 5;  // 限制秒十位最大为5
 | 
				
			||||||
 | 
					            stTime.mSecond = tempValue * 10;
 | 
				
			||||||
 | 
					            set_time_state = SET_SEC_ONES;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					        case SET_SEC_ONES:
 | 
				
			||||||
 | 
					            stTime.mSecond = (stTime.mSecond / 10) * 10 + tempValue;
 | 
				
			||||||
 | 
					            is_setting_time = 0;
 | 
				
			||||||
 | 
					            set_time_state = SET_DONE;
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        case SET_DONE:
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
/* USER CODE END 0 */
 | 
					/* USER CODE END 0 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* External variables --------------------------------------------------------*/
 | 
					/* External variables --------------------------------------------------------*/
 | 
				
			||||||
@ -207,17 +272,26 @@ void SysTick_Handler(void)
 | 
				
			|||||||
      for (int i = 0; i < 16; i++) {
 | 
					      for (int i = 0; i < 16; i++) {
 | 
				
			||||||
        if (KeyValue == KeyTable[i]) {
 | 
					        if (KeyValue == KeyTable[i]) {
 | 
				
			||||||
          tempValue = i;
 | 
					          tempValue = i;
 | 
				
			||||||
 | 
					          break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      DispToBuff(tempValue);
 | 
					      process_time_setting();
 | 
				
			||||||
 | 
					      // DispToBuff(tempValue);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (++sSysTickTimer.mTimeCount >= 100) {
 | 
					    if (++sSysTickTimer.mHundredMilSecCount >= 10) {
 | 
				
			||||||
 | 
					      sSysTickTimer.mHundredMilSecCount = 0;
 | 
				
			||||||
 | 
					      sSysTickTimer.bHundredMilSecOk = 1;
 | 
				
			||||||
 | 
					      if (is_setting_time) {
 | 
				
			||||||
 | 
					        show_digit = !show_digit;
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					      if (++sSysTickTimer.mTimeCount >= 10) {
 | 
				
			||||||
        sSysTickTimer.mTimeCount = 0;
 | 
					        sSysTickTimer.mTimeCount = 0;
 | 
				
			||||||
        sSysTickTimer.bTimeOk = 1;
 | 
					        sSysTickTimer.bTimeOk = 1;
 | 
				
			||||||
        if(++mNum>=19)
 | 
					        if(++mNum>=19)
 | 
				
			||||||
          mNum=15;	
 | 
					          mNum=15;	
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
  /* USER CODE END SysTick_IRQn 1 */
 | 
					  /* USER CODE END SysTick_IRQn 1 */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -43,7 +43,7 @@ void MX_TIM3_Init(void)
 | 
				
			|||||||
  htim3.Instance = TIM3;
 | 
					  htim3.Instance = TIM3;
 | 
				
			||||||
  htim3.Init.Prescaler = 170-1;
 | 
					  htim3.Init.Prescaler = 170-1;
 | 
				
			||||||
  htim3.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED1;
 | 
					  htim3.Init.CounterMode = TIM_COUNTERMODE_CENTERALIGNED1;
 | 
				
			||||||
  htim3.Init.Period = 999;
 | 
					  htim3.Init.Period = 1015;
 | 
				
			||||||
  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
 | 
					  htim3.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
 | 
				
			||||||
  htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
 | 
					  htim3.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
 | 
				
			||||||
  if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
 | 
					  if (HAL_TIM_Base_Init(&htim3) != HAL_OK)
 | 
				
			||||||
 | 
				
			|||||||
@ -315,7 +315,7 @@ SPI2.Mode=SPI_MODE_MASTER
 | 
				
			|||||||
SPI2.VirtualType=VM_MASTER
 | 
					SPI2.VirtualType=VM_MASTER
 | 
				
			||||||
TIM3.CounterMode=TIM_COUNTERMODE_CENTERALIGNED1
 | 
					TIM3.CounterMode=TIM_COUNTERMODE_CENTERALIGNED1
 | 
				
			||||||
TIM3.IPParameters=Prescaler,CounterMode,PeriodNoDither
 | 
					TIM3.IPParameters=Prescaler,CounterMode,PeriodNoDither
 | 
				
			||||||
TIM3.PeriodNoDither=1000-1
 | 
					TIM3.PeriodNoDither=1016-1
 | 
				
			||||||
TIM3.Prescaler=170-1
 | 
					TIM3.Prescaler=170-1
 | 
				
			||||||
VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
 | 
					VP_SYS_VS_DBSignals.Mode=DisableDeadBatterySignals
 | 
				
			||||||
VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
 | 
					VP_SYS_VS_DBSignals.Signal=SYS_VS_DBSignals
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user