硬汉嵌入式论坛

 找回密码
 立即注册
查看: 976|回复: 3
收起左侧

[TouchGFX] 关于Touchgfx的handleTickEvent

[复制链接]

0

主题

2

回帖

2

积分

新手上路

积分
2
发表于 2022-7-20 16:33:39 | 显示全部楼层 |阅读模式
本帖最后由 rekludge 于 2022-7-20 17:29 编辑

主界面上有一个scrollwheel控件,handleTickEvent里没加东西的时候,滚动速度正常,后来想加一个时钟显示,在handleTickEvent里处理了一下,滚动速度就变得特别慢,请问这是为什么?

[C] 纯文本查看 复制代码
void ScreenMainView::handleTickEvent()
{
        
        for(uint8_t i=0; i<3; i++) RTCValue[i] = *((presenter->P_getTime_RTC())+i);

        Unicode::snprintf(text_HourBuffer, 4, "%d", RTCValue[0]);
        Unicode::snprintf(text_MinuteBuffer, 4, "%d", RTCValue[1]);
        Unicode::snprintf(text_SecondBuffer, 4, "%d", RTCValue[2]);
        
        getRootContainer().invalidate();
        
}

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106997
QQ
发表于 2022-7-21 10:15:28 | 显示全部楼层
是不是这个函数的执行时间略长,可以实际测试下。
回复

使用道具 举报

0

主题

2

回帖

2

积分

新手上路

积分
2
 楼主| 发表于 2022-7-21 15:47:38 | 显示全部楼层

看到这篇文章https://blog.csdn.net/weixin_42381351/article/details/105650861里说handleTickEvent是由屏幕中断触发的,那应该是每次刷新屏幕的时候调用
getRootContainer().invalidate() 是刷新页面全部容器,猜测可能是冲突了?
去掉这句后scrollwheel的滚动速度正常了
回复

使用道具 举报

58

主题

267

回帖

446

积分

高级会员

积分
446
发表于 2022-7-21 22:37:46 | 显示全部楼层
handleTickEvent 函数一秒钟执行 60 次,你放在这里面刷新时间工作量是比较大的。你可以加个计数器,计数多少次后才刷新一次。一秒钟刷新两三次差不多了,并且刷新的时候可以判断时分秒的数字是否与上次相同,相同就不刷新显示。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-13 20:58 , Processed in 0.267960 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表