久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1498|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

LCD_ShowChar字符顯示函數(shù)影響系統(tǒng)的響應(yīng)時間問題

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:997026 發(fā)表于 2022-7-21 22:11 | 顯示全部樓層 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 hxdby 于 2022-7-21 22:14 編輯

各位好,

我現(xiàn)在調(diào)一塊3.5寸的TFT LCD,發(fā)現(xiàn)廠家提供的 void LCD_ShowChar()這個顯示字符串的函數(shù)執(zhí)行效率非常低下,我的程序中一使用這個函數(shù),按鍵的反應(yīng)就下降很多,按一下按鍵,LCD上幾乎1s才有反應(yīng),只要注釋掉這個函數(shù),按鍵的響應(yīng)幾乎瞬間的,非常快!

這個函數(shù)如下:
void LCD_ShowChar(uint16_t x,uint16_t y,uint8_t num,uint8_t size,uint8_t mode, uint16_t pcolor, uint16_t bcolor)
{
    uint8_t temp,t1,t;
    uint16_t y0=y;
    uint8_t csize=(size/8+((size%8)?1:0))*(size/2);                //得到字體一個字符對應(yīng)點陣集所占的字節(jié)數(shù)
    num=num-' ';//得到偏移后的值(ASCII字庫是從空格開始取模,所以-' '就是對應(yīng)字符的字庫)

    //Address_set(x,y,x+size/2-1,y+size-1); //如果把坐標(biāo)設(shè)置放在這里,不放循環(huán)中可以解決響應(yīng)問題,但是商家給我的程序,這里被注釋掉了,不知道為啥?我啟用后,發(fā)送字符顯示亂碼------1
    for(t=0; t<csize; t++)
    {
        if(size==24)temp=asc2_2412[num][t];                  //調(diào)用1206字體
        else if(size==16)temp=asc2_1608[num][t];           //調(diào)用1608字體
         else if(size==38)temp=asc2_38x19[num][t];        //調(diào)用3216字體
        else if(size==48)temp=asc2_4824[num][t];        //調(diào)用4824字體
        //        else if(size==64)temp=asc2_6432[num][t];        //調(diào)用4824字體
        else return;                                                                //沒有的字庫
        for(t1=0; t1<8; t1++)
        {
            if(temp&0x80)LCD_DrawPoint(x,y,pcolor);  //發(fā)現(xiàn)問題在畫點函數(shù)這里,畫點函數(shù)帶了坐標(biāo)設(shè)置,導(dǎo)致每循環(huán)一次就會發(fā)一次坐標(biāo),而坐標(biāo)是通過SPI發(fā)給LCD,SPI速度不高拖慢整個程序
            else if(mode==0)LCD_DrawPoint(x,y,bcolor);
            temp<<=1;
            y++;
            if(y>=240)return;                //超區(qū)域了
            if((y-y0)==size)
            {
                y=y0;
                x++;
                if(x>=320)return;        //超區(qū)域了
                break;
            }
        }
    }
}



后來我調(diào)了好久,發(fā)現(xiàn)并非是這整個函數(shù)問題,而是在這個函數(shù)中的循環(huán)里的畫點函數(shù)帶了坐標(biāo)設(shè)置,每循環(huán)一次都會通過SPI發(fā)坐標(biāo)給LCD,嚴(yán)重拖慢了整個系統(tǒng)。而發(fā)一次坐標(biāo)SPI要發(fā)8次數(shù)據(jù),所以導(dǎo)致系統(tǒng)變慢。
如果把發(fā)坐標(biāo)的部分單獨拿出來,放在上面代碼都1處,系統(tǒng)就正常了,響應(yīng)非常快,但是放在1處,字符顯示不正常了,這個坐標(biāo)設(shè)置函數(shù)Address_set(x,y,x+size/2-1,y+size-1); 也沒看出來有什么問題啊,是哪里有問題呢?

各位有沒有什么方法不要在循環(huán)里發(fā)坐標(biāo),循環(huán)里只發(fā)顏色數(shù)據(jù),坐標(biāo)放在外面設(shè)置,有什么寫法可以分享,我自己在網(wǎng)上查了很多,發(fā)現(xiàn)很多都是這種循環(huán)帶坐標(biāo)的寫法,難道坐標(biāo)非得放在循環(huán)里嗎。



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:997026 發(fā)表于 2022-7-29 00:22 | 顯示全部樓層
祖國的花朵 發(fā)表于 2022-7-25 09:52
跟廠家要屏幕的數(shù)據(jù)手冊,看看屏幕有沒有連續(xù)寫模式

這個問題我已經(jīng)解決了!廠家提供的程序我全部研究過了,基本只能說是能實現(xiàn)最基礎(chǔ)的功能,但是要用在項目中是不現(xiàn)實的。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美中国少妇xxx性高请视频 | av中文字幕在线 | 久久99国产精品 | 国产亚洲欧美日韩精品一区二区三区 | 日韩1区 | 性一交一乱一透一a级 | 羞羞在线观看视频 | 怡红院免费的全部视频 | 日韩黄a| www.久| 日本精品免费 | 中文字幕国产一区 | 日本超碰 | 免费一级欧美在线观看视频 | 日韩福利 | 日韩 国产 在线 | 亚洲精品乱码 | 狠狠操狠狠干 | 久久久久久久一区 | 手机在线观看 | 国产精品免费一区二区三区四区 | 日韩欧美在线观看 | 成人av大全 | 国产黄色av电影 | 在线免费观看一区二区 | 欧美不卡一区二区三区 | 亚洲人成人一区二区在线观看 | 日韩精品一区二区三区在线播放 | 国产99热在线 | 一区不卡在线观看 | 国产sm主人调教女m视频 | 成人在线电影在线观看 | 日韩一二区在线 | h小视频| 性一爱一乱一交一视频 | 欧美www在线观看 | 天天看天天摸天天操 | 色爱区综合| 午夜影院污 | 国产精品2区 | 亚洲一区国产精品 |