欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

關(guān)于12864畫(huà)點(diǎn)函數(shù)的問(wèn)題(求教)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:184267 發(fā)表于 2017-7-19 16:20 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是一個(gè)常見(jiàn)的12864畫(huà)點(diǎn)函數(shù)
我完全看不懂switch那部分啊,為什么要左移動(dòng)7減Tier_bit。
哪位大佬可以給我講講
  1. void DrawPoint( unsigned char X, unsigned char Y, unsigned char Color )
  2. {
  3.     unsigned char Row , Tier , Tier_bit    ;
  4.     unsigned char ReadOldH, ReadOldL ;
  5.         Tier = X >> 4 ;   
  6.     Tier_bit = X & 0x0f ;
  7.     if( Y < 32 )
  8.     {
  9.         Row = Y ;
  10.     }
  11.     else
  12.     {
  13.         Row = Y - 32 ;
  14.         Tier += 8 ;
  15.     }
  16.         wr_cmd(Row + 0x80);                //寫(xiě)入行坐標(biāo)
  17.         wr_cmd(Tier + 0x80);        //寫(xiě)入列坐標(biāo)
  18.         rd_dat();
  19.     ReadOldH = rd_dat() ;         //讀出原始數(shù)據(jù)
  20.     ReadOldL = rd_dat() ;
  21.         wr_cmd(Row + 0x80);
  22.         wr_cmd(Tier + 0x80);
  23.     if( Tier_bit < 8 )
  24.     {
  25.         switch( Color)
  26.         {
  27.             case 0 : ReadOldH &=( ~( 0x01 << ( 7 - Tier_bit ))) ; break ;        //不顯示
  28.             case 1 : ReadOldH |= ( 0x01 << ( 7 - Tier_bit )) ; break ;                //顯示
  29.             case 2 : ReadOldH ^= ( 0x01 << ( 7 - Tier_bit ))    ; break ;   //翻轉(zhuǎn)
  30.             default : break ;   
  31.         }
  32.                 wr_dat(ReadOldH);  //寫(xiě)入新數(shù)據(jù)
  33.                 wr_dat(ReadOldL);
  34.     }
  35.     else
  36.     {
  37.         switch(Color)
  38.         {
  39.             case 0 : ReadOldL &= (~( 0x01 << ( 15 - Tier_bit ))) ; break ;
  40.             case 1 : ReadOldL |= ( 0x01 << ( 15 - Tier_bit ))    ; break ;
  41.             case 2 : ReadOldL ^= ( 0x01 << ( 15 - Tier_bit )) ; break ;
  42.             default : break ;
  43.         }
  44.                 wr_dat(ReadOldH);
  45.                 wr_dat(ReadOldL);
  46.     }
  47. }
復(fù)制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

無(wú)效樓層,該帖已經(jīng)被刪除
板凳
ID:184267 發(fā)表于 2017-8-9 21:51 | 只看該作者
這個(gè)問(wèn)題我自己已經(jīng)解決了。感覺(jué)現(xiàn)在沒(méi)有任何生氣,提問(wèn)題沒(méi)有一個(gè)回復(fù),傷心

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

地板
ID:184267 發(fā)表于 2017-8-10 16:38 | 只看該作者
感謝管理員的回復(fù),我現(xiàn)在來(lái)對(duì)自己提出的問(wèn)題作出解答:
我當(dāng)初不明白這句話的意思
case 1 : ReadOldH |= ( 0x01 << ( 7 - Tier_bit )) ; break ;                //顯示

其實(shí)是樣的,12864每行有128個(gè)像素點(diǎn),能夠顯示16個(gè)字節(jié),即每個(gè)字節(jié)占8個(gè)像素點(diǎn)
假設(shè)我要第2個(gè)像素點(diǎn)亮,Tier_bit就會(huì)為1(因?yàn)榈谝晃粸?,故第二位為1),代入上面這句話,就會(huì)有0x01左移6位(由0000 0001變成0100 0000)
1當(dāng)“或”上ReadOldH(這個(gè)為原來(lái)8位的情況),就會(huì)在原來(lái)的基礎(chǔ)上點(diǎn)亮第二個(gè)像素點(diǎn)
2當(dāng)“與”上ReadOldH,就會(huì)只點(diǎn)亮第二個(gè)像素點(diǎn),而其他7個(gè)點(diǎn)置0不亮

以上就是我的解答,如有錯(cuò)誤或者不足,請(qǐng)大家指正

評(píng)分

參與人數(shù) 2黑幣 +115 收起 理由
taoran + 15 很給力!
admin + 100 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:98618 發(fā)表于 2017-8-11 00:47 | 只看該作者
謝謝樓主的無(wú)私分享,能幫到很多人。
回復(fù)

使用道具 舉報(bào)

6#
ID:83690 發(fā)表于 2018-5-1 06:43 | 只看該作者
樓主你好,請(qǐng)問(wèn)我使用該函數(shù)時(shí)會(huì)直接造成清屏是什么原因?
回復(fù)

使用道具 舉報(bào)

7#
ID:583647 發(fā)表于 2019-7-14 10:11 | 只看該作者
本帖最后由 日冕星 于 2019-7-14 11:24 編輯
MHNMHN 發(fā)表于 2017-8-10 16:38
感謝管理員的回復(fù),我現(xiàn)在來(lái)對(duì)自己提出的問(wèn)題作出解答:
我當(dāng)初不明白這句話的意思
case 1 : ReadOldH |= ...

對(duì)樓主的解釋做點(diǎn)補(bǔ)充:
3.當(dāng)其取反后“與”上ReadOldH,由0100 0000變?yōu)?011 1111,會(huì)在原來(lái)的基礎(chǔ)上熄滅第二個(gè)像素點(diǎn)(case 0);
4.當(dāng)“異或”上ReadOldH,會(huì)在原來(lái)的基礎(chǔ)上使第二個(gè)像素點(diǎn)狀態(tài)反轉(zhuǎn)(case 2);
以上是Tier_bit<8(每行16個(gè)字節(jié)分為8個(gè)區(qū)域,每個(gè)區(qū)域的高字節(jié)部分)時(shí)的情況;至于Tier_bit>=8時(shí),情況類(lèi)似,(15-Tier_bit)的目的是使移位控制在0~7范圍內(nèi)。
另外值得注意的是,傳入的參數(shù)x指水平像素點(diǎn)坐標(biāo)(0~127),y指垂直像素點(diǎn)坐標(biāo)(0~63)
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表