標(biāo)題: T6963C驅(qū)動程序問題:奇怪,這兩句一樣,怎么效果就不一樣? [打印本頁]

作者: xzf586    時(shí)間: 2018-9-29 10:46
標(biāo)題: T6963C驅(qū)動程序問題:奇怪,這兩句一樣,怎么效果就不一樣?
看LCM_pixel(127,63,1)函數(shù),應(yīng)該與這兩句LCM_set_address(63*16+127/8)fnPR12(0xf8 | 7);是一樣意思,現(xiàn)在上面可以正常顯示兩個(gè)點(diǎn),但是將上面注釋掉,換成下面兩句,就不可以?請教大神是怎么回事?


#include "T6963C.H"

void LCM_pixel(uchar column, uchar row,bit show)
{
         uint addr;        
        
         if((column>=LCM_XMAX)||(row>=LCM_YMAX))
                 return;
         addr =(uint)LCM_G_BASE + (row*LCM_BYTES_PER_ROW)+ (column/8);
         LCM_set_address(addr);                                                           // set LCD addr. Pointer        
         if(show)
                fnPR12((LCM_BIT_OP+8)| (7-column%8));                          // 0xf8為畫點(diǎn)命令,
         else
                fnPR12(LCM_BIT_OP| (7-column%8));                                  // 0xf0為清點(diǎn)命令
         
}
void main(void)            // 測試用
{
        LCM_init();

        LCM_set_address(63*16+127/8);//右下角
        fnPR12(0xf8 | 7);
        LCM_set_address(63*16+0/8);//左下角
        fnPR12(0xf8 | 7);

//        LCM_pixel(127,63,1);//右下角addr=63*16+127/8=0x03FF
//        LCM_pixel(0,63,1);//左下角addr=63*16+127/8=0x03F0
        
        while(1);
}


復(fù)件 4 LCD12864(T6963)驅(qū)動程序 畫圖函數(shù)測試.rar

40.96 KB, 下載次數(shù): 11


作者: 小貓貓愛吃魚    時(shí)間: 2018-9-29 12:37
void LCM_pixel(uchar column, uchar row,bit show)

函數(shù)內(nèi)定義的 column、row 是采用的 uchar 類型,計(jì)算超出范圍了
作者: 豬八戒    時(shí)間: 2018-9-29 13:02
看是否跟if((column>=LCM_XMAX)||(row>=LCM_YMAX))有關(guān)系
作者: xzf586    時(shí)間: 2018-9-29 14:19
謝謝,晚上回去看看,感覺沒有超過范圍!
作者: xzf586    時(shí)間: 2018-9-29 14:20
這句注釋過了,也沒用
作者: xzf586    時(shí)間: 2018-9-29 14:22
小貓貓愛吃魚 發(fā)表于 2018-9-29 12:37
void LCM_pixel(uchar column, uchar row,bit show)

函數(shù)內(nèi)定義的 column、row 是采用的 uchar 類型,計(jì) ...

謝謝,127,63沒有超范圍?
作者: xzf586    時(shí)間: 2018-9-29 14:23
豬八戒 發(fā)表于 2018-9-29 13:02
看是否跟if((column>=LCM_XMAX)||(row>=LCM_YMAX))有關(guān)系

注釋過了,也沒用!
作者: 飛云居士    時(shí)間: 2018-9-29 20:06
addr =(uint)LCM_G_BASE + (row*LCM_BYTES_PER_ROW)+ (column/8);

這句計(jì)算應(yīng)該是編譯后數(shù)據(jù)類型不對。導(dǎo)致計(jì)算錯誤
作者: xzf586    時(shí)間: 2018-9-30 19:05
飛云居士 發(fā)表于 2018-9-29 20:06
addr =(uint)LCM_G_BASE + (row*LCM_BYTES_PER_ROW)+ (column/8);

這句計(jì)算應(yīng)該是編譯后數(shù)據(jù)類型不對。 ...

那應(yīng)該如何修改呢?




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1