[MCU] 界面没有显示出来

[复制链接]
1160|21
 楼主| zhanghqi 发表于 2020-2-22 21:45 | 显示全部楼层 |阅读模式
用LM3S9B92做一个秒表,我目的是让时间在LCD屏幕的一小块指定区域内刷新,其他的区域作为秒表的界面,是不需要实时更新的。问题就是我的其他界面是跟着时间一起刷新的,可能由于频率太快(0.1s刷新一次),导致我的界面根本就没有显示出来
zhenykun 发表于 2020-2-22 21:47 | 显示全部楼层


搞点代码哈
 楼主| zhanghqi 发表于 2020-2-22 21:51 | 显示全部楼层
//定时器0中断处理函数
void Timer0IntHandler(void)
{
      if(g_bSign)
    {
        return;
    }
    TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
    unsigned long ulNum = ++g_ulNum;
    char pcBuffer[9]="00:00:00";
    usprintf(pcBuffer,"%02d:%02d:%02d",
           (int)(ulNum/3600),
           (int)(ulNum%3600/60),
           (int)(ulNum%60));

    IntMasterDisable();
//这里写实时时间   
    GrStringDraw(&g_sTimeContext, pcBuffer, -1, 0, 24, 1);
    IntMasterEnable();
}

主函数中我将存放动态时间的区域分开了(如下),可是还是没效果
GrContextClipRegionSet(&g_sContext, &sRect2);
g_sTimeContext = g_sContext;

如果我这样的方式行不通,请各位指导指导,换种方式也行,再次拜谢!
zhenykun 发表于 2020-2-22 21:53 | 显示全部楼层
楼主是刷频太慢了吧?LCD显示的全靠刷频的啊
wyjie 发表于 2020-2-22 21:54 | 显示全部楼层


100ms是有点慢.  呵
 楼主| zhanghqi 发表于 2020-2-22 21:56 | 显示全部楼层


失误,这里写错了,是1/60秒刷新一次。TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER); TimerLoadSet(TIMER0_BASE, TIMER_A, SysCtlClockGet() / 60);我试过将装载值调大一点(将60变为1)。这样反而能刷新出其他的部分。
jlyuan 发表于 2020-2-22 21:57 | 显示全部楼层
然后呢
 楼主| zhanghqi 发表于 2020-2-22 22:00 | 显示全部楼层
所以我想是不是定时器中断中刷新字符串频率太快,还没等其他部分刷新出来它又刷新时间部分,导致其他部分没有出现。
yufe 发表于 2020-2-22 22:02 | 显示全部楼层
将时间部分分割出来
 楼主| zhanghqi 发表于 2020-2-22 22:04 | 显示全部楼层
只刷新时间部分刷新?还是不行
jiahy 发表于 2020-2-22 22:06 | 显示全部楼层
是不是刷频速度太慢了
zyf部长 发表于 2020-2-22 22:08 | 显示全部楼层

楼主准备怎么解决?
lium 发表于 2020-2-22 22:10 | 显示全部楼层
你使用单步调试呢?
zhanglli 发表于 2020-2-22 22:11 | 显示全部楼层

频率速度太快是显示不清楚吗
gongche 发表于 2020-2-22 22:14 | 显示全部楼层
这个定时更新固定的趋势。
jlyuan 发表于 2020-2-22 22:16 | 显示全部楼层
现在都不使用LM3S9B92
zhuhuis 发表于 2020-2-22 22:18 | 显示全部楼层

刷新之后,也能隐约看到数字。
chenho 发表于 2020-2-22 22:21 | 显示全部楼层
单步调试有问题吗?
juventus9554 发表于 2020-2-22 22:23 | 显示全部楼层
频率太快不是显示的问题吧,是LCD显示问题。
dingy 发表于 2020-2-22 22:25 | 显示全部楼层
推荐使用msp430吧,这个用的很多。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

852

主题

11757

帖子

5

粉丝
快速回复 在线客服 返回列表 返回顶部