|
|
你好 硬汉哥,请教一个问题,
先说以下我的硬件情况
stm32H743IIT6(480Mhz,外部晶振) sdram(W9825G6KH 16bit模式,240Mhz 2分频后是120Mhz), 屏幕是10.1寸 1024*768的屏幕,刷新率最高60hz(型号京东方 GV104X0M-N10 LTDC配置是60mhz),
软件和配置上
驱动使用ltdc单层 RGB565加dma2d模式驱动屏幕(双缓冲模式), spi从机(时钟是120mhz)接收spi主机的数据(每4ms接收一次数据长度60个字节的数据)
rtos使用threadx6.4.0,配置的tick是1000(1秒1千次),gui使用guix6.4.0进行界面展示(guix使用dma2d进行画图)
实现内容 spi部分每4ms接受一次数据长度是60个字节的数据,并将数据在界面中同时展示出三个波形出来(展示的效果类似您二代示波器的展示效果)。
由于我的波形是需要满足25mm/s移动的要求,通过屏幕分辨率和屏幕尺寸我需要guix 8ms一次处理一次波形数据并展示出来(spi是4ms一次给我数据,guix两次数据进行运算展示一次波形数据),guix我使用了自带的guix定时器接口gx_system_timer_start((GX_WIDGET *)&window_Main, WAVEFORM_TIMER, 8, 8); 定时器到时间以后我是不断把波形按照一个guix定时器一个像素的往右画(8ms往右画一个像素点),我的波形数据是固定的展示模式,
每次定时器更新波形的时候我也是把脏数据窗口调的尽量小(三个波形的脏区域基本上是15*20, 20*30, 20*30)
现在的问题是我的gx_system_timer_start定时器不能满足每次都是8ms触发,可能连续十次能够8ms触发一次update波形,第十一次定时器就会超时到25ms才会触发一次update波形,问题出现的频率是不固定的
任务优先级上 ltdc中断和dma2d和spi的优先级最高(对应优先级2,2,1),guix的界面展示优先级是10。
我尝试使用threadx加ltdc和dma2d直接驱动屏幕不使用guix进行波形的展示,是能满足我的需求的,难道是guix比较慢?
后面我又使用guix6.4先不更新波形,直接使用8ms定时器更新界面里配置的numeric prompt的值, 使用接口 gx_numeric_prompt_value_set进行数字更新,定时器依然会超时20ms左右,
难道guix就这么慢吗
因为没用过stemwin,是不是可以使用threadx和stemwin来满足我的需求?麻烦硬汉哥了
|
|