精華區beta Electronics 關於我們 聯絡資訊
下面的程式,動作正常,只是覺得if太多,不知道有辦法縮短嗎?(不影響動作) 另外,想知道.......這樣的語法有沒有什麼暇吃或不妥的地方法? 還有還有......就是..... for(i=0;i<3;i++) x=abc[i]; 請問i++是一次做完?還是進入for只做一次,0~3要進入三次 會問這問題原因是.....下面程式i我用計數代48*i-1 我想用for取代.....但是覺得那個i++如果組合語言角度想的話 應該是........"進入for時才作一次i++" 所以用for改寫,好像會讓程式動作錯誤 ================================================================= #define SDI P1_0 #define DCLK P1_1 #define LE P1_2 #define GCLK P1_3 #include "AT89C51.h" unsigned int code SDI_LUT [] = {1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1}; main() { unsigned int SDI_cnt,LE_cnt = 0; unsigned int i = 1; while(1) { DCLK = 0; SDI = SDI_LUT[SDI_cnt]; DCLK = 1; if (LE_cnt == 48*i-1||LE_cnt == 766) { LE = 1; } else { LE = 0; } if (SDI_cnt < 47) { SDI_cnt++; } else { SDI_cnt = 0; if (i < 16) { i++; } else { i = 1; } } if (LE_cnt < 767) { LE_cnt++; } else { LE_cnt = 0; } } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.58.1.203