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

標題: 請教單片機代碼編寫 功能是讀取時間,并在屏幕中繪制一個數字 [打印本頁]

作者: mengsiu    時間: 2024-2-17 00:19
標題: 請教單片機代碼編寫 功能是讀取時間,并在屏幕中繪制一個數字
現在有一段代碼如下,可以運行,功能是讀取時間,并在屏幕中繪制一個數字:
  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.       }
復制代碼
這當中使用到switch語句,而且每個條件觸發的命令都類似。但這一大串代碼看起來很臃腫,我想將其改成以下形式:
  1. //建立一個數組
  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);
復制代碼
上方代碼并不能正常運行,NUM_NAMES數組不能被正確調用。
現在問題是,這一個數組要怎么建立才合理呢?

作者: xiaobendan001    時間: 2024-2-17 07:56
要不試試用一個變量先接收了hour()的值?
作者: bailu0216    時間: 2024-2-17 10:52
      好多年不做這個了,回答可能會怡笑方家。請看看建立數組的NUM_NAMES[]數據類型和display.drawBitmap的中 Number_X的數據類型是否一致?
      這里還有一個變量 hour() / 10   這個變量是否和NUM_NAMES[]匹配?  建議這個變量隨便設置
      i = hour() / 10    之后再寫入NUM_NAMES[i]試試呢
作者: mengsiu    時間: 2024-2-17 15:49
bailu0216 發表于 2024-2-17 10:52
好多年不做這個了,回答可能會怡笑方家。請看看建立數組的NUM_NAMES[]數據類型和display.drawBitmap ...

hour返回的是數值,除以10是取其十位,與其對應的還有一個除余10,取個位。現在調用NUM_NAMES是能返回Number_X的,只是怎么樣將這個返回的Number_X應用到display.drawBitmap函數里去?
作者: zhuls    時間: 2024-2-17 16:57
mengsiu 發表于 2024-2-17 15:49
hour返回的是數值,除以10是取其十位,與其對應的還有一個除余10,取個位。現在調用NUM_NAMES是能返回Num ...

了解一下二維數組。
作者: cedtek    時間: 2024-2-17 18:00
Number_X 是什么類型的數據呢?
作者: 人中狼    時間: 2024-2-17 18:18
看調用的顯示函數,number明顯應該是個指針
作者: man1234567    時間: 2024-2-17 20:13
hour()后面貌似應該有;
或者改成下面的試試:
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);




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