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

QQ登錄

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

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

請(qǐng)教單片機(jī)代碼編寫 功能是讀取時(shí)間,并在屏幕中繪制一個(gè)數(shù)字

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:16255 發(fā)表于 2024-2-17 00:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
現(xiàn)在有一段代碼如下,可以運(yùn)行,功能是讀取時(shí)間,并在屏幕中繪制一個(gè)數(shù)字:
  1.       switch (hour() / 10) {
  2.         case 0:
  3.           {
  4.             display.drawBitmap(0, 16, Number_0, 36, 72, GxEPD_BLACK);
  5.             break;
  6.           }
  7.         case 1:
  8.           {
  9.             display.drawBitmap(0, 16, Number_1, 36, 72, GxEPD_BLACK);
  10.             break;
  11.           }
  12.         case 2:
  13.           {
  14.             display.drawBitmap(0, 16, Number_2, 36, 72, GxEPD_BLACK);
  15.             break;
  16.           }
  17.         case 3:
  18.           {
  19.             display.drawBitmap(0, 16, Number_3, 36, 72, GxEPD_BLACK);
  20.             break;
  21.           }
  22.         case 4:
  23.           {
  24.             display.drawBitmap(0, 16, Number_4, 36, 72, GxEPD_BLACK);
  25.             break;
  26.           }
  27.         case 5:
  28.           {
  29.             display.drawBitmap(0, 16, Number_5, 36, 72, GxEPD_BLACK);
  30.             break;
  31.           }
  32.         case 6:
  33.           {
  34.             display.drawBitmap(0, 16, Number_6, 36, 72, GxEPD_BLACK);
  35.             break;
  36.           }
  37.         case 7:
  38.           {
  39.             display.drawBitmap(0, 16, Number_7, 36, 72, GxEPD_BLACK);
  40.             break;
  41.           }
  42.         case 8:
  43.           {
  44.             display.drawBitmap(0, 16, Number_8, 36, 72, GxEPD_BLACK);
  45.             break;
  46.           }
  47.         case 9:
  48.           {
  49.             display.drawBitmap(0, 16, Number_9, 36, 72, GxEPD_BLACK);
  50.             break;
  51.           }
  52.       }
復(fù)制代碼
這當(dāng)中使用到switch語(yǔ)句,而且每個(gè)條件觸發(fā)的命令都類似。但這一大串代碼看起來(lái)很臃腫,我想將其改成以下形式:
  1. //建立一個(gè)數(shù)組
  2. NUM_NAMES[] = { Number_0, Number_1, Number_2, Number_3, Number_4, Number_5, Number_6, Number_7, Number_8, Number_9 };
  3. display.drawBitmap(0, 16, NUM_NAMES[(hour() / 10)], 36, 72, GxEPD_BLACK);
復(fù)制代碼
上方代碼并不能正常運(yùn)行,NUM_NAMES數(shù)組不能被正確調(diào)用。
現(xiàn)在問(wèn)題是,這一個(gè)數(shù)組要怎么建立才合理呢?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1109793 發(fā)表于 2024-2-17 07:56 | 只看該作者
要不試試用一個(gè)變量先接收了hour()的值?
回復(fù)

使用道具 舉報(bào)

板凳
ID:1111026 發(fā)表于 2024-2-17 10:52 | 只看該作者
      好多年不做這個(gè)了,回答可能會(huì)怡笑方家。請(qǐng)看看建立數(shù)組的NUM_NAMES[]數(shù)據(jù)類型和display.drawBitmap的中 Number_X的數(shù)據(jù)類型是否一致?
      這里還有一個(gè)變量 hour() / 10   這個(gè)變量是否和NUM_NAMES[]匹配?  建議這個(gè)變量隨便設(shè)置
      i = hour() / 10    之后再寫入NUM_NAMES[i]試試呢
回復(fù)

使用道具 舉報(bào)

地板
ID:16255 發(fā)表于 2024-2-17 15:49 | 只看該作者
bailu0216 發(fā)表于 2024-2-17 10:52
好多年不做這個(gè)了,回答可能會(huì)怡笑方家。請(qǐng)看看建立數(shù)組的NUM_NAMES[]數(shù)據(jù)類型和display.drawBitmap ...

hour返回的是數(shù)值,除以10是取其十位,與其對(duì)應(yīng)的還有一個(gè)除余10,取個(gè)位。現(xiàn)在調(diào)用NUM_NAMES是能返回Number_X的,只是怎么樣將這個(gè)返回的Number_X應(yīng)用到display.drawBitmap函數(shù)里去?
回復(fù)

使用道具 舉報(bào)

5#
ID:69038 發(fā)表于 2024-2-17 16:57 | 只看該作者
mengsiu 發(fā)表于 2024-2-17 15:49
hour返回的是數(shù)值,除以10是取其十位,與其對(duì)應(yīng)的還有一個(gè)除余10,取個(gè)位,F(xiàn)在調(diào)用NUM_NAMES是能返回Num ...

了解一下二維數(shù)組。
回復(fù)

使用道具 舉報(bào)

6#
ID:866313 發(fā)表于 2024-2-17 18:00 | 只看該作者
Number_X 是什么類型的數(shù)據(jù)呢?
回復(fù)

使用道具 舉報(bào)

7#
ID:384109 發(fā)表于 2024-2-17 18:18 | 只看該作者
看調(diào)用的顯示函數(shù),number明顯應(yīng)該是個(gè)指針
回復(fù)

使用道具 舉報(bào)

8#
ID:584814 發(fā)表于 2024-2-17 20:13 | 只看該作者
hour()后面貌似應(yīng)該有;
或者改成下面的試試:
unsigned char xx;xx=hour();xx=xx/10;
NUM_NAMES[] = { Number_0, Number_1, Number_2, Number_3, Number_4, Number_5, Number_6, Number_7, Number_8, Number_9 };
display.drawBitmap(0, 16, NUM_NAMES[xx], 36, 72, GxEPD_BLACK);
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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