discard previous trial, tried display with internal frame buffer
This commit is contained in:
@ -6,27 +6,21 @@
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* <h2><center>© Copyright (c) 2022 STMicroelectronics.
|
||||
* All rights reserved.</center></h2>
|
||||
* Copyright (c) 2025 STMicroelectronics.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software component is licensed by ST under BSD 3-Clause license,
|
||||
* the "License"; You may not use this file except in compliance with the
|
||||
* License. You may obtain a copy of the License at:
|
||||
* opensource.org/licenses/BSD-3-Clause
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
/* USER CODE END Header */
|
||||
/* Includes ------------------------------------------------------------------*/
|
||||
#include "main.h"
|
||||
#include "app_touchgfx.h"
|
||||
|
||||
/* Private includes ----------------------------------------------------------*/
|
||||
/* USER CODE BEGIN Includes */
|
||||
#include "charger_control.h"
|
||||
#include "slave_handler.h"
|
||||
#include "can.h"
|
||||
#include "b_cccv_algo.h"
|
||||
|
||||
/* USER CODE END Includes */
|
||||
|
||||
@ -37,6 +31,7 @@
|
||||
|
||||
/* Private define ------------------------------------------------------------*/
|
||||
/* USER CODE BEGIN PD */
|
||||
|
||||
/* USER CODE END PD */
|
||||
|
||||
/* Private macro -------------------------------------------------------------*/
|
||||
@ -64,7 +59,7 @@ PCD_HandleTypeDef hpcd_USB_OTG_HS;
|
||||
SDRAM_HandleTypeDef hsdram1;
|
||||
|
||||
/* USER CODE BEGIN PV */
|
||||
|
||||
uint16_t framebuffer[160*120];
|
||||
/* USER CODE END PV */
|
||||
|
||||
/* Private function prototypes -----------------------------------------------*/
|
||||
@ -81,13 +76,12 @@ static void MX_UART5_Init(void);
|
||||
static void MX_LTDC_Init(void);
|
||||
static void MX_CRC_Init(void);
|
||||
/* USER CODE BEGIN PFP */
|
||||
uint32_t MemoryCheck(UART_HandleTypeDef *uart_console, SDRAM_HandleTypeDef *sram);
|
||||
|
||||
/* USER CODE END PFP */
|
||||
|
||||
/* Private user code ---------------------------------------------------------*/
|
||||
/* USER CODE BEGIN 0 */
|
||||
#define RAM_TEST_BLOCKSIZE 4096
|
||||
__attribute__((section(".ahb_sec"))) uint32_t testarray[RAM_TEST_BLOCKSIZE];
|
||||
|
||||
/* USER CODE END 0 */
|
||||
|
||||
/**
|
||||
@ -131,41 +125,24 @@ int main(void)
|
||||
MX_UART5_Init();
|
||||
MX_LTDC_Init();
|
||||
MX_CRC_Init();
|
||||
MX_TouchGFX_Init();
|
||||
/* USER CODE BEGIN 2 */
|
||||
|
||||
//uint32_t sdramcheck = MemoryCheck(&huart5, &hsdram1);
|
||||
//MX_LTDC_Init();
|
||||
slave_handler_init();
|
||||
initCan(&hfdcan1);
|
||||
charger_control_init(&hi2c4);
|
||||
initChargerAlgo(102, 4.15);
|
||||
setchargecurrent(0.0);
|
||||
setchargevoltage(102, 0);
|
||||
charger_control_disable_remote();
|
||||
//HAL_LTDC_Reload(&hltdc, LTDC_RELOAD_IMMEDIATE);
|
||||
HAL_LTDC_SetAddress(&hltdc, (uint32_t)framebuffer, LTDC_LAYER_1);
|
||||
uint8_t r = 0xff, g = 0x00, b = 0x00; // Solid red
|
||||
uint16_t col = ((r>>3)<<11) | ((g>>2)<<5) | (b>>3); // Convert colors to RGB565
|
||||
// Put colors into the framebuffer
|
||||
for(int i = 0; i < 160*120; i++)
|
||||
{
|
||||
framebuffer[i] = col;
|
||||
}
|
||||
/* USER CODE END 2 */
|
||||
|
||||
/* Infinite loop */
|
||||
/* USER CODE BEGIN WHILE */
|
||||
uint32_t lasttick = HAL_GetTick();
|
||||
while (1)
|
||||
{
|
||||
/* USER CODE END WHILE */
|
||||
|
||||
MX_TouchGFX_Process();
|
||||
/* USER CODE BEGIN 3 */
|
||||
|
||||
|
||||
if((HAL_GetTick() - lasttick) > 1000)
|
||||
{
|
||||
// float maxvoltage = slaves_get_maximum_voltage();
|
||||
// lasttick = HAL_GetTick();
|
||||
// chargingloop(slaves_get_maximum_voltage());
|
||||
HAL_GPIO_TogglePin(STATUS_LED_2_GPIO_Port, STATUS_LED_2_Pin);
|
||||
}
|
||||
|
||||
// HAL_Delay(500);
|
||||
}
|
||||
/* USER CODE END 3 */
|
||||
}
|
||||
@ -415,12 +392,12 @@ static void MX_LTDC_Init(void)
|
||||
hltdc.Init.PCPolarity = LTDC_PCPOLARITY_IPC;
|
||||
hltdc.Init.HorizontalSync = 19;
|
||||
hltdc.Init.VerticalSync = 2;
|
||||
hltdc.Init.AccumulatedHBP = 159;
|
||||
hltdc.Init.AccumulatedHBP = 69;
|
||||
hltdc.Init.AccumulatedVBP = 22;
|
||||
hltdc.Init.AccumulatedActiveW = 1183;
|
||||
hltdc.Init.AccumulatedActiveH = 622;
|
||||
hltdc.Init.TotalWidth = 1343;
|
||||
hltdc.Init.TotalHeigh = 634;
|
||||
hltdc.Init.AccumulatedActiveW = 549;
|
||||
hltdc.Init.AccumulatedActiveH = 294;
|
||||
hltdc.Init.TotalWidth = 599;
|
||||
hltdc.Init.TotalHeigh = 306;
|
||||
hltdc.Init.Backcolor.Blue = 0;
|
||||
hltdc.Init.Backcolor.Green = 0;
|
||||
hltdc.Init.Backcolor.Red = 0;
|
||||
@ -429,10 +406,10 @@ static void MX_LTDC_Init(void)
|
||||
Error_Handler();
|
||||
}
|
||||
pLayerCfg.WindowX0 = 0;
|
||||
pLayerCfg.WindowX1 = 1024;
|
||||
pLayerCfg.WindowX1 = 480;
|
||||
pLayerCfg.WindowY0 = 0;
|
||||
pLayerCfg.WindowY1 = 600;
|
||||
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB888;
|
||||
pLayerCfg.WindowY1 = 272;
|
||||
pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;
|
||||
pLayerCfg.Alpha = 1;
|
||||
pLayerCfg.Alpha0 = 0;
|
||||
pLayerCfg.BlendingFactor1 = LTDC_BLENDING_FACTOR1_CA;
|
||||
@ -448,8 +425,7 @@ static void MX_LTDC_Init(void)
|
||||
Error_Handler();
|
||||
}
|
||||
/* USER CODE BEGIN LTDC_Init 2 */
|
||||
__HAL_LTDC_ENABLE(&hltdc);
|
||||
__HAL_LTDC_LAYER_ENABLE(&hltdc,1);
|
||||
|
||||
/* USER CODE END LTDC_Init 2 */
|
||||
|
||||
}
|
||||
@ -660,32 +636,7 @@ static void MX_FMC_Init(void)
|
||||
}
|
||||
|
||||
/* USER CODE BEGIN FMC_Init 2 */
|
||||
FMC_SDRAM_CommandTypeDef command;
|
||||
HAL_StatusTypeDef status;
|
||||
command.CommandTarget = FMC_SDRAM_CMD_TARGET_BANK1;
|
||||
command.CommandMode = FMC_SDRAM_CMD_CLK_ENABLE;
|
||||
command.AutoRefreshNumber = 1;
|
||||
command.ModeRegisterDefinition = 0;
|
||||
status = HAL_SDRAM_SendCommand(&hsdram1, &command, 1000);
|
||||
HAL_Delay(1);
|
||||
|
||||
|
||||
command.CommandMode = FMC_SDRAM_CMD_PALL;
|
||||
command.AutoRefreshNumber = 8;
|
||||
command.ModeRegisterDefinition = 0;
|
||||
status = HAL_SDRAM_SendCommand(&hsdram1, &command, 1000);
|
||||
|
||||
command.CommandMode = FMC_SDRAM_CMD_LOAD_MODE;
|
||||
command.AutoRefreshNumber = 1;
|
||||
command.ModeRegisterDefinition = 0x130;
|
||||
status = HAL_SDRAM_SendCommand(&hsdram1, &command, 1000);
|
||||
|
||||
command.CommandMode = FMC_SDRAM_CMD_AUTOREFRESH_MODE;
|
||||
command.AutoRefreshNumber = 8;
|
||||
command.ModeRegisterDefinition = 0;
|
||||
status = HAL_SDRAM_SendCommand(&hsdram1, &command, 1000);
|
||||
|
||||
status = HAL_SDRAM_ProgramRefreshRate(&hsdram1, 0x0595);
|
||||
/* USER CODE END FMC_Init 2 */
|
||||
}
|
||||
|
||||
@ -768,49 +719,6 @@ static void MX_GPIO_Init(void)
|
||||
|
||||
/* USER CODE BEGIN 4 */
|
||||
|
||||
/** @brief run a Memory Check over the complete SDRAM Area
|
||||
*
|
||||
*/
|
||||
uint32_t MemoryCheck(UART_HandleTypeDef *uart_console, SDRAM_HandleTypeDef *sram)
|
||||
{
|
||||
uint32_t totalerrors = 0;
|
||||
uint32_t numberofsectors = 400;
|
||||
|
||||
uint32_t testadr = 0xC0000000;
|
||||
|
||||
|
||||
//*testpointer = 1;
|
||||
|
||||
for(uint32_t startaddress = 0; startaddress < numberofsectors*RAM_TEST_BLOCKSIZE; startaddress += RAM_TEST_BLOCKSIZE)
|
||||
{
|
||||
|
||||
for(uint32_t i = 0; i < RAM_TEST_BLOCKSIZE; i++)
|
||||
{
|
||||
testarray[i] = 0xFFFF00FF;
|
||||
}
|
||||
//*testadr = (uint32_t*) ;
|
||||
HAL_StatusTypeDef status = HAL_SDRAM_Write_32b(sram, (uint32_t*)(testadr+startaddress), testarray, RAM_TEST_BLOCKSIZE);
|
||||
//testadr = (uint32_t*) (startaddress + 0xC0000000);
|
||||
for(uint32_t i = 0; i < RAM_TEST_BLOCKSIZE; i++)
|
||||
{
|
||||
testarray[i] = 0;
|
||||
}
|
||||
status = HAL_SDRAM_Read_32b(sram,(uint32_t*)(testadr+startaddress), testarray, RAM_TEST_BLOCKSIZE);
|
||||
|
||||
uint32_t errorcounter = 0;
|
||||
for(uint32_t i = 0; i <RAM_TEST_BLOCKSIZE;i++)
|
||||
{
|
||||
if(testarray[i] != (i+3000))
|
||||
{
|
||||
errorcounter++;
|
||||
}
|
||||
}
|
||||
totalerrors += errorcounter;
|
||||
}
|
||||
|
||||
return totalerrors;
|
||||
|
||||
}
|
||||
/* USER CODE END 4 */
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user