From 07d5fdb434ee78dad53c754d5dac7cd9257ee3ec Mon Sep 17 00:00:00 2001 From: Klagarge Date: Mon, 18 Mar 2024 13:59:32 +0100 Subject: [PATCH] add requierment for task2 --- RTE/Device/STM32F746NGHx/RTE_Device.h | 2 +- RTE/Hesso_pack/clock_216.c | 38 +++ RTE/Hesso_pack/clock_216.h | 17 + RTE/_Target_1/RTE_Components.h | 5 + RTE/uGFX_library/gfxconf.h | 473 ++++++++++++++++++++++++++ lab04-queue.uvprojx | 56 ++- main.c | 33 +- 7 files changed, 590 insertions(+), 34 deletions(-) create mode 100644 RTE/Hesso_pack/clock_216.c create mode 100644 RTE/Hesso_pack/clock_216.h create mode 100644 RTE/uGFX_library/gfxconf.h diff --git a/RTE/Device/STM32F746NGHx/RTE_Device.h b/RTE/Device/STM32F746NGHx/RTE_Device.h index 8fef49c..821d69d 100644 --- a/RTE/Device/STM32F746NGHx/RTE_Device.h +++ b/RTE/Device/STM32F746NGHx/RTE_Device.h @@ -1107,7 +1107,7 @@ // I2C3 (Inter-integrated Circuit Interface 3) [Driver_I2C3] // Configuration settings for Driver_I2C3 in component ::CMSIS Driver:I2C -#define RTE_I2C3 0 +#define RTE_I2C3 1 // I2C3_SCL Pin <0=>PH7 <1=>PA8 #define RTE_I2C3_SCL_PORT_ID 0 diff --git a/RTE/Hesso_pack/clock_216.c b/RTE/Hesso_pack/clock_216.c new file mode 100644 index 0000000..cc7b7f3 --- /dev/null +++ b/RTE/Hesso_pack/clock_216.c @@ -0,0 +1,38 @@ + +#include "stm32f7xx_hal.h" +#include "clock_216.h" + +//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ +// Setup system clock to 216MHz +//------------------------------------------------------------------------------ +void SystemClock_Config (void) { + RCC_ClkInitTypeDef RCC_ClkInitStruct; + RCC_OscInitTypeDef RCC_OscInitStruct; + + /* Enable HSE Oscillator and activate PLL with HSE as source */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.HSIState = RCC_HSI_OFF; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; + RCC_OscInitStruct.PLL.PLLM = 25; + RCC_OscInitStruct.PLL.PLLN = 432; + RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; + RCC_OscInitStruct.PLL.PLLQ = 9; + HAL_RCC_OscConfig(&RCC_OscInitStruct); + + /* Activate the OverDrive to reach the 216 MHz Frequency */ + HAL_PWREx_EnableOverDrive(); + + /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */ + RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; + HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7); +} + + diff --git a/RTE/Hesso_pack/clock_216.h b/RTE/Hesso_pack/clock_216.h new file mode 100644 index 0000000..a281697 --- /dev/null +++ b/RTE/Hesso_pack/clock_216.h @@ -0,0 +1,17 @@ +/************************************************************************//** + * \file clock_216.h + * \brief Function to set the system clock to 216 MHz + * \author pascal (dot) sartoretti (at) hevs (dot) ch + ***************************************************************************/ +#ifndef __CLOCK_216_H +#define __CLOCK_216_H + +#include + +/************************************************************************//** + * \brief Inits the system clock to 216 MHz + ***************************************************************************/ +extern void SystemClock_Config (void); + + +#endif /* __CLOCK_216_H */ diff --git a/RTE/_Target_1/RTE_Components.h b/RTE/_Target_1/RTE_Components.h index c793458..f6b8a1c 100644 --- a/RTE/_Target_1/RTE_Components.h +++ b/RTE/_Target_1/RTE_Components.h @@ -26,6 +26,11 @@ /* Keil.ARM Compiler::Compiler:I/O:STDOUT:ITM:1.2.0 */ #define RTE_Compiler_IO_STDOUT /* Compiler I/O: STDOUT */ #define RTE_Compiler_IO_STDOUT_ITM /* Compiler I/O: STDOUT ITM */ +/* Keil::CMSIS Driver:I2C:1.9.0 */ +#define RTE_Drivers_I2C1 /* Driver I2C1 */ + #define RTE_Drivers_I2C2 /* Driver I2C2 */ + #define RTE_Drivers_I2C3 /* Driver I2C3 */ + #define RTE_Drivers_I2C4 /* Driver I2C4 */ /* Keil::Device:STM32Cube Framework:Classic:1.2.7 */ #define RTE_DEVICE_FRAMEWORK_CLASSIC /* Keil::Device:STM32Cube HAL:Common:1.2.7 */ diff --git a/RTE/uGFX_library/gfxconf.h b/RTE/uGFX_library/gfxconf.h new file mode 100644 index 0000000..4da61f6 --- /dev/null +++ b/RTE/uGFX_library/gfxconf.h @@ -0,0 +1,473 @@ +/** + * This file has a different license to the rest of the uGFX system. + * You can copy, modify and distribute this file as you see fit. + * You do not need to publish your source modifications to this file. + * The only thing you are not permitted to do is to relicense it + * under a different license. + */ + +/** + * Copy this file into your project directory and rename it as gfxconf.h + * Edit your copy to turn on the uGFX features you want to use. + * The values below are the defaults. + * + * Only remove the comments from lines where you want to change the + * default value. This allows definitions to be included from + * driver makefiles when required and provides the best future + * compatibility for your project. + * + * Please use spaces instead of tabs in this file. + */ +//* <<< Use Configuration Wizard in Context Menu >>> +#ifndef _GFXCONF_H +#define _GFXCONF_H +// uGFX configuration with RTX5 operating system. +// Full documentation available at: https://wiki.ugfx.io +#define CONF_WIZ_OS 1 +/////////////////////////////////////////////////////////////////////////// +// GOS - One of these must be defined, preferably in your Makefile // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_OS_CHIBIOS FALSE +//#define GFX_USE_OS_FREERTOS FALSE +// #define GFX_FREERTOS_USE_TRACE FALSE +//#define GFX_USE_OS_WIN32 FALSE +//#define GFX_USE_OS_LINUX FALSE +//#define GFX_USE_OS_OSX FALSE +//#define GFX_USE_OS_ECOS FALSE +//#define GFX_USE_OS_RAWRTOS TRUE +//#define GFX_USE_OS_ARDUINO FALSE +//#define GFX_USE_OS_KEIL TRUE +//#define GFX_USE_OS_CMSIS FALSE +//#define GFX_USE_OS_CMSIS2 FALSE +#if CONF_WIZ_OS == 0 + #define GFX_USE_OS_RAW32 TRUE + #define GFX_USE_OS_RTX5 FALSE + #define GFX_OS_PRE_INIT_FUNCTION Raw32OSInit + #define GFX_OS_INIT_NO_WARNING TRUE +#else + #define GFX_USE_OS_RAW32 FALSE + #define GFX_USE_OS_RTX5 TRUE + #define GFX_OS_INIT_NO_WARNING TRUE +#endif +//#define GFX_USE_OS_ZEPHYR FALSE +//#define GFX_USE_OS_NIOS FALSE +//#define GFX_USE_OS_QT FALSE +// #define INTERRUPTS_OFF() optional_code +// #define INTERRUPTS_ON() optional_code + +// Options that (should where relevant) apply to all operating systems +// #define GFX_NO_INLINE FALSE + #define GFX_COMPILER GFX_COMPILER_KEIL +// #define GFX_SHOW_COMPILER FALSE + #define GFX_CPU GFX_CPU_CORTEX_M7 +// #define GFX_CPU_NO_ALIGNMENT_FAULTS FALSE +// #define GFX_CPU_ENDIAN GFX_CPU_ENDIAN_UNKNOWN +// GFX heap size (in bytes), min. 32000 + + #define GFX_OS_HEAP_SIZE 32000 + #define GFX_OS_NO_INIT TRUE +// #define GFX_OS_EXTRA_INIT_FUNCTION myOSInitRoutine +// #define GFX_OS_EXTRA_DEINIT_FUNCTION myOSDeInitRoutine +// #define GFX_OS_CALL_UGFXMAIN FALSE +// #define GFX_OS_UGFXMAIN_STACKSIZE 0 +// #define GFX_EMULATE_MALLOC FALSE +// LCD orientartion <0=> Board orientation +// <90=> 90 degree rotate +// <180=> 180 degree rotate (default laboratory) +// <270=> 270 degree rotate +#define GDISP_DEFAULT_ORIENTATION 180 // If not defined the native hardware orientation is used. + +/////////////////////////////////////////////////////////////////////////// +// GDISP // +/////////////////////////////////////////////////////////////////////////// +// GDISP configuration +#define GFX_USE_GDISP 1 +#define GDISP_NEED_CONTROL 1 // always because LCD is 180 degree +// Use of draw circle functions +#define GDISP_NEED_CIRCLE 0 +// Use of draw circle into circle +#define GDISP_NEED_DUALCIRCLE 0 +// Use of draw ellipse functions +#define GDISP_NEED_ELLIPSE 0 +// Use of draw arc functions +#define GDISP_NEED_ARC 0 +// Use of draw arc sectors functions +#define GDISP_NEED_ARCSECTORS 0 +// Use of draw convex polygon functions +#define GDISP_NEED_CONVEX_POLYGON 0 +// Use of scrolling functions +#define GDISP_NEED_SCROLL 0 +// Use of read pixel functions +#define GDISP_NEED_PIXELREAD 0 +//#define GDISP_NEED_QUERY FALSE +#define GDISP_NEED_MULTITHREAD 1 +//#define GDISP_NEED_STREAMING FALSE +//#define GDISP_NEED_AUTOFLUSH FALSE +//#define GDISP_NEED_TIMERFLUSH FALSE + +// Control LCD boundaries +#define GDISP_NEED_VALIDATION 0 +#define GDISP_NEED_CLIP TRUE +// Text usage +#define GDISP_NEED_TEXT 1 + +// Text word wrap + #define GDISP_NEED_TEXT_WORDWRAP 0 +// #define GDISP_NEED_TEXT_BOXPADLR 1 +// #define GDISP_NEED_TEXT_BOXPADTB 1 +// Text antialiasing + #define GDISP_NEED_ANTIALIAS 0 +// Text UTF8 + #define GDISP_NEED_UTF8 1 +// Text kerning + #define GDISP_NEED_TEXT_KERNING 0 + +// Fonts (use one at least) +#define FOR_CONF_WIZARD 1 +// Font ui1 + #define GDISP_INCLUDE_FONT_UI1 0 +// Font ui2 + #define GDISP_INCLUDE_FONT_UI2 1 // The smallest preferred font. +// Font Largenumbers + #define GDISP_INCLUDE_FONT_LARGENUMBERS 0 +// Font DejaVuSans10 + #define GDISP_INCLUDE_FONT_DEJAVUSANS10 0 +// Font DejaVuSans12 + #define GDISP_INCLUDE_FONT_DEJAVUSANS12 0 +// Font DejaVuSans16 + #define GDISP_INCLUDE_FONT_DEJAVUSANS16 0 +// Font DejaVuSans20 + #define GDISP_INCLUDE_FONT_DEJAVUSANS20 0 +// Font DejaVuSans24 + #define GDISP_INCLUDE_FONT_DEJAVUSANS24 0 +// Font DejaVuSans32 + #define GDISP_INCLUDE_FONT_DEJAVUSANS32 0 +// Font DejaVuSansBold12 + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12 0 +// Font Fixed_10x20 + #define GDISP_INCLUDE_FONT_FIXED_10X20 0 +// Font Fixed_7x14 + #define GDISP_INCLUDE_FONT_FIXED_7X14 0 +// Font Fixed_5x8 + #define GDISP_INCLUDE_FONT_FIXED_5X8 0 +// Font DejaVuSans12_aa + #define GDISP_INCLUDE_FONT_DEJAVUSANS12_AA 0 +// Font DejaVuSans16_aa + #define GDISP_INCLUDE_FONT_DEJAVUSANS16_AA 0 +// Font DejaVuSans20_aa + #define GDISP_INCLUDE_FONT_DEJAVUSANS20_AA 0 +// Font Dejavusans24_aa + #define GDISP_INCLUDE_FONT_DEJAVUSANS24_AA 0 +// Font DejaVuSans32_aa + #define GDISP_INCLUDE_FONT_DEJAVUSANS32_AA 0 +// Font DejaVuSansBold12_aa + #define GDISP_INCLUDE_FONT_DEJAVUSANSBOLD12_AA 0 +// Font user + #define GDISP_INCLUDE_USER_FONTS 0 +// +// +// Image usage +#define GDISP_NEED_IMAGE 0 +// Image bitmap (BMP) + #define GDISP_NEED_IMAGE_BMP 0 +// Bitmap 1 bit + #define GDISP_NEED_IMAGE_BMP_1 0 +// Bitmap 4 bits + #define GDISP_NEED_IMAGE_BMP_4 0 +// Bitmap 4 bits RLE compressed + #define GDISP_NEED_IMAGE_BMP_4_RLE 0 +// Bitmap 8 bits + #define GDISP_NEED_IMAGE_BMP_8 0 +// Bitmap 8 bits RLE compressed + #define GDISP_NEED_IMAGE_BMP_8_RLE 0 +// Bitmap 16 bits + #define GDISP_NEED_IMAGE_BMP_16 0 +// Bitmap 24 bits + #define GDISP_NEED_IMAGE_BMP_24 0 +// Bitmap 32 bits + #define GDISP_NEED_IMAGE_BMP_32 0 + #define GDISP_IMAGE_BMP_BLIT_BUFFER_SIZE 32 +// +// Image GIF + #define GDISP_NEED_IMAGE_GIF 0 + #define GDISP_IMAGE_GIF_BLIT_BUFFER_SIZE 32 +// Image JPG + #define GDISP_NEED_IMAGE_JPG 0 +// Image PNG + #define GDISP_NEED_IMAGE_PNG 0 +// PDG interlaced + #define GDISP_NEED_IMAGE_PNG_INTERLACED 0 +// PDG transparency + #define GDISP_NEED_IMAGE_PNG_TRANSPARENCY 1 +// PDG background + #define GDISP_NEED_IMAGE_PNG_BACKGROUND 1 +// #define GDISP_NEED_IMAGE_PNG_ALPHACLIFF 32 +// #define GDISP_NEED_IMAGE_PNG_PALETTE_124 TRUE +// #define GDISP_NEED_IMAGE_PNG_PALETTE_8 TRUE +// #define GDISP_NEED_IMAGE_PNG_GRAYSCALE_124 TRUE +// #define GDISP_NEED_IMAGE_PNG_GRAYSCALE_8 TRUE +// #define GDISP_NEED_IMAGE_PNG_GRAYSCALE_16 TRUE +// #define GDISP_NEED_IMAGE_PNG_GRAYALPHA_8 TRUE +// #define GDISP_NEED_IMAGE_PNG_GRAYALPHA_16 TRUE +// #define GDISP_NEED_IMAGE_PNG_RGB_8 TRUE +// #define GDISP_NEED_IMAGE_PNG_RGB_16 TRUE +// #define GDISP_NEED_IMAGE_PNG_RGBALPHA_8 TRUE +// #define GDISP_NEED_IMAGE_PNG_RGBALPHA_16 TRUE +// #define GDISP_IMAGE_PNG_BLIT_BUFFER_SIZE 32 +// #define GDISP_IMAGE_PNG_FILE_BUFFER_SIZE 8 +// #define GDISP_IMAGE_PNG_Z_BUFFER_SIZE 32768 +// +// #define GDISP_NEED_IMAGE_ACCOUNTING FALSE +// #define GDISP_NEED_IMAGE_NATIVE FALSE + +//#define GDISP_NEED_PIXMAP FALSE +// #define GDISP_NEED_PIXMAP_IMAGE FALSE + +//#define GDISP_LINEBUF_SIZE 128 +//#define GDISP_STARTUP_COLOR Black +#define GDISP_NEED_STARTUP_LOGO FALSE + +//#define GDISP_TOTAL_DISPLAYS 1 + +#define GDISP_DRIVER_LIST GDISPVMT_STM32LTDC +// #ifdef GDISP_DRIVER_LIST +// // For code and speed optimization define as TRUE or FALSE if all controllers have the same capability +// #define GDISP_HARDWARE_STREAM_WRITE FALSE +// #define GDISP_HARDWARE_STREAM_READ FALSE +// #define GDISP_HARDWARE_STREAM_POS FALSE +// #define GDISP_HARDWARE_DRAWPIXEL FALSE +// #define GDISP_HARDWARE_CLEARS FALSE +// #define GDISP_HARDWARE_FILLS FALSE +// #define GDISP_HARDWARE_BITFILLS FALSE +// #define GDISP_HARDWARE_SCROLL FALSE + #define GDISP_HARDWARE_PIXELREAD GFXON +// #define GDISP_HARDWARE_CONTROL FALSE +// #define GDISP_HARDWARE_QUERY FALSE +// #define GDISP_HARDWARE_CLIP FALSE + + #define GDISP_PIXELFORMAT GDISP_PIXELFORMAT_RGB565 +// #endif + +//#define GDISP_USE_GFXNET FALSE +// #define GDISP_GFXNET_PORT 13001 +// #define GDISP_GFXNET_CUSTOM_LWIP_STARTUP FALSE +// #define GDISP_DONT_WAIT_FOR_NET_DISPLAY FALSE +// #define GDISP_GFXNET_UNSAFE_SOCKETS FALSE +// +// +/////////////////////////////////////////////////////////////////////////// +// GWIN // +/////////////////////////////////////////////////////////////////////////// +// GWIN configuration +#define GFX_USE_GWIN 0 +// Use windows manager + #define GWIN_NEED_WINDOWMANAGER 1 +// Redraw imadiate + #define GWIN_REDRAW_IMMEDIATE 0 +// Redraw all windows in single operation + #define GWIN_REDRAW_SINGLEOP 1 +// Flashing widget support + #define GWIN_NEED_FLASHING 0 +// Flashing period + #define GWIN_FLASHING_PERIOD 250 +// +// Console support +#define GWIN_NEED_CONSOLE 0 +// Console history + #define GWIN_CONSOLE_HISTORY_ATCREATE 0 +// #define GWIN_CONSOLE_USE_HISTORY 0 +// #define GWIN_CONSOLE_HISTORY_AVERAGING FALSE +// Use escape command for coloring + #define GWIN_CONSOLE_ESCSEQ 0 +// #define GWIN_CONSOLE_USE_BASESTREAM FALSE // chibios only +// Floating numbers support + #define GWIN_CONSOLE_USE_FLOAT 0 +// +//#define GWIN_NEED_GRAPH FALSE +//#define GWIN_NEED_GL3D FALSE +// Widget support +#define GWIN_NEED_WIDGET 1 +//#define GWIN_FOCUS_HIGHLIGHT_WIDTH 1 +// Label support + #define GWIN_NEED_LABEL 0 +// #define GWIN_LABEL_ATTRIBUTE FALSE +// Button support + #define GWIN_NEED_BUTTON 1 +// #define GWIN_BUTTON_LAZY_RELEASE FALSE +// Slider support + #define GWIN_NEED_SLIDER 0 +// #define GWIN_SLIDER_NOSNAP FALSE +// #define GWIN_SLIDER_DEAD_BAND 5 +// #define GWIN_SLIDER_TOGGLE_INC 20 +// Checkbox support + #define GWIN_NEED_CHECKBOX 0 +// Image support + #define GWIN_NEED_IMAGE 0 +// Image animation support + #define GWIN_NEED_IMAGE_ANIMATION 0 +// +// Radio button support + #define GWIN_NEED_RADIO 0 +// List support + #define GWIN_NEED_LIST 0 +// List image support + #define GWIN_NEED_LIST_IMAGES 0 +// + +// Progressbar support + #define GWIN_NEED_PROGRESSBAR 0 +// #define GWIN_PROGRESSBAR_AUTO FALSE +// Keyboard support + #define GWIN_NEED_KEYBOARD 0 +// #define GWIN_KEYBOARD_DEFAULT_LAYOUT VirtualKeyboard_English1 +// #define GWIN_NEED_KEYBOARD_ENGLISH1 TRUE +// Text edit support + #define GWIN_NEED_TEXTEDIT 0 +// #define GWIN_FLAT_STYLING FALSE +// Widgets tag support + #define GWIN_WIDGET_TAGS 0 +// Containers support + #define GWIN_NEED_CONTAINERS 1 +// Need container support + #define GWIN_NEED_CONTAINER 1 +// Frame support + #define GWIN_NEED_FRAME 0 +// Tabset support (see details) + #define GWIN_NEED_TABSET 0 +// #define GWIN_TABSET_TABHEIGHT 18 +// + +/////////////////////////////////////////////////////////////////////////// +// GTRANS // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_GTRANS FALSE + + +/////////////////////////////////////////////////////////////////////////// +// GEVENT // +/////////////////////////////////////////////////////////////////////////// +// GEVENT configuration +#define GFX_USE_GEVENT 0 + +//#define GEVENT_ASSERT_NO_RESOURCE FALSE +// Maximum size of an event (in bytes) +#define GEVENT_MAXIMUM_SIZE 32 +// Maximum Source/Listener pair +#define GEVENT_MAX_SOURCE_LISTENERS 32 + +// +/////////////////////////////////////////////////////////////////////////// +// GTIMER // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GTIMER 1 + +#define GTIMER_THREAD_PRIORITY HIGH_PRIORITY +#define GTIMER_THREAD_WORKAREA_SIZE 4096 + + +/////////////////////////////////////////////////////////////////////////// +// GQUEUE // +/////////////////////////////////////////////////////////////////////////// +#define GFX_USE_GQUEUE TRUE + +#define GQUEUE_NEED_ASYNC TRUE +//#define GQUEUE_NEED_GSYNC FALSE +//#define GQUEUE_NEED_FSYNC FALSE +//#define GQUEUE_NEED_BUFFERS FALSE + +/////////////////////////////////////////////////////////////////////////// +// GINPUT // +/////////////////////////////////////////////////////////////////////////// +// GINPUT configuration +#define GFX_USE_GINPUT 0 + +// Mouse / touchscreen support +#define GINPUT_NEED_MOUSE 0 +// #define GINPUT_TOUCH_STARTRAW FALSE + +// #define GINPUT_TOUCH_NOTOUCH FALSE +// #define GINPUT_TOUCH_NOCALIBRATE FALSE +#define GINPUT_TOUCH_NOCALIBRATE_GUI TRUE +// #define GINPUT_MOUSE_POLL_PERIOD 25 +// #define GINPUT_MOUSE_CLICK_TIME 300 +// #define GINPUT_TOUCH_CXTCLICK_TIME 700 +// #define GINPUT_TOUCH_USER_CALIBRATION_LOAD FALSE +// #define GINPUT_TOUCH_USER_CALIBRATION_SAVE FALSE + #define GMOUSE_DRIVER_LIST GMOUSEVMT_FT5336 +// Keyboard support +#define GINPUT_NEED_KEYBOARD 0 +// #define GINPUT_KEYBOARD_POLL_PERIOD 200 +// #define GKEYBOARD_DRIVER_LIST GKEYBOARDVMT_Win32, GKEYBOARDVMT_Win32 +// #define GKEYBOARD_LAYOUT_OFF FALSE +// #define GKEYBOARD_LAYOUT_SCANCODE2_US FALSE +//#define GINPUT_NEED_TOGGLE FALSE +//#define GINPUT_NEED_DIAL FALSE +// + + +/////////////////////////////////////////////////////////////////////////// +// GFILE // +/////////////////////////////////////////////////////////////////////////// +// GFILE configuration +#define GFX_USE_GFILE 0 +// String support +#define GFILE_NEED_STRINGS 0 +// printfg, fprintg, etc support +#define GFILE_NEED_PRINTG 0 +// scang, fscang, etc support +#define GFILE_NEED_SCANG 0 +// +//#define GFILE_NEED_FILELISTS FALSE +//#define GFILE_NEED_STDIO FALSE +//#define GFILE_NEED_NOAUTOMOUNT FALSE +//#define GFILE_NEED_NOAUTOSYNC FALSE + +//#define GFILE_NEED_MEMFS FALSE +// ROM file system support +#define GFILE_NEED_ROMFS 1 +// RAM file system support +#define GFILE_NEED_RAMFS 0 +//#define GFILE_NEED_FATFS FALSE +//#define GFILE_NEED_NATIVEFS FALSE +//#define GFILE_NEED_CHBIOSFS FALSE +//#define GFILE_NEED_USERFS FALSE + +//#define GFILE_ALLOW_FLOATS FALSE +//#define GFILE_ALLOW_DEVICESPECIFIC FALSE +// Maximum number of files +#define GFILE_MAX_GFILES 6 +// + +/////////////////////////////////////////////////////////////////////////// +// GADC // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_GADC FALSE +// #define GADC_MAX_LOWSPEED_DEVICES 4 + +/////////////////////////////////////////////////////////////////////////// +// GAUDIO // +/////////////////////////////////////////////////////////////////////////// +//#define GFX_USE_GAUDIO FALSE +// #define GAUDIO_NEED_PLAY FALSE +// #define GAUDIO_NEED_RECORD FALSE + +/////////////////////////////////////////////////////////////////////////// +// GMISC // +/////////////////////////////////////////////////////////////////////////// +// GMISC configuration (see details in file) +#define GFX_USE_GMISC 0 + +//#define GMISC_NEED_ARRAYOPS FALSE +//#define GMISC_NEED_FASTTRIG FALSE +//#define GMISC_NEED_FIXEDTRIG FALSE +//#define GMISC_NEED_INVSQRT FALSE +// #define GMISC_INVSQRT_MIXED_ENDIAN FALSE +// #define GMISC_INVSQRT_REAL_SLOW FALSE +#define GMISC_NEED_MATRIXFLOAT2D 0 +//#define GMISC_NEED_MATRIXFIXED2D FALSE +//#define GMISC_NEED_HITTEST_POLY FALSE +// +// + + +#endif /* _GFXCONF_H */ diff --git a/lab04-queue.uvprojx b/lab04-queue.uvprojx index 82caec7..3d31dfc 100644 --- a/lab04-queue.uvprojx +++ b/lab04-queue.uvprojx @@ -339,7 +339,7 @@ - + .\RTE\uGFX_library @@ -393,6 +393,9 @@ ::CMSIS + + ::CMSIS Driver + ::Compiler @@ -402,12 +405,21 @@ ::Hesso pack + + ::uGFX library + + + + + + + @@ -446,6 +458,12 @@ + + + + + + @@ -458,6 +476,12 @@ + + + + + + @@ -512,6 +536,12 @@ + + + + + + @@ -570,6 +600,22 @@ + + RTE\Hesso_pack\clock_216.c + + + + + + + + RTE\Hesso_pack\clock_216.h + + + + + + RTE\Hesso_pack\ext_led.c @@ -602,6 +648,14 @@ + + RTE\uGFX_library\gfxconf.h + + + + + + diff --git a/main.c b/main.c index 05dbf50..ef53a9f 100644 --- a/main.c +++ b/main.c @@ -36,37 +36,6 @@ const osMessageQueueAttr_t msgQueue_attr = { }; -//------------------------------------------------------------------------------ -// Setup system clock to 216MHz -//------------------------------------------------------------------------------ -void SystemClock_Config (void) { - RCC_ClkInitTypeDef RCC_ClkInitStruct; - RCC_OscInitTypeDef RCC_OscInitStruct; - - /* Enable HSE Oscillator and activate PLL with HSE as source */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; - RCC_OscInitStruct.HSEState = RCC_HSE_ON; - RCC_OscInitStruct.HSIState = RCC_HSI_OFF; - RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; - RCC_OscInitStruct.PLL.PLLM = 25; - RCC_OscInitStruct.PLL.PLLN = 432; - RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; - RCC_OscInitStruct.PLL.PLLQ = 9; - HAL_RCC_OscConfig(&RCC_OscInitStruct); - - /* Activate the OverDrive to reach the 216 MHz Frequency */ - HAL_PWREx_EnableOverDrive(); - - /* Select PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */ - RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2); - RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; - RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; - RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV4; - RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; - HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_7); -} - /*---------------------------------------------------------------------------- @@ -100,7 +69,7 @@ __NO_RETURN static void Thread_Consumer (void *argument) { do { statusQueue = osMessageQueueGet(*queue, &msg, NULL, 0); - printf("Value is %d\r\n", msg); + if(statusQueue == osOK) printf("Value is %d\r\n", msg); } while(statusQueue != osErrorResource); if(++counter > 10) counter = 1; osDelay(counter*100);