Character_lcd(1511).c 34 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860
  1. #include "main.h"
  2. void Lcd_AchSetting_Display(void);
  3. void Lcd_Ach150M_Display(void);
  4. void Lcd_AchWifi_Display(void);
  5. void Lcd_Ach30G_Display(void);
  6. void Lcd_BchSetting_Display(void);
  7. void Lcd_Bch150M_Display(void);
  8. void Lcd_BchWifi_Display(void);
  9. void Lcd_Bch30G_Display(void);
  10. void LCD_150M_ValueChange_Display(Layer_t layer,float* data,float offset);
  11. void LCD_Wifi_ValueChange_Display(Layer_t layer,float* data,float offset);
  12. void LCD_30G_ValueChange_Display(Layer_t layer,float* data,float offset);
  13. ////////////////////////////////////////////////////////////////////////////////////////////
  14. void LCD_Wifi_Freq_Select_Display(Layer_t layer,float db_value);
  15. void LCD_30G_Freq_Select_Display(Layer_t layer,float db_value);
  16. float Ach_150M_Value = 0;
  17. float Ach_Wifi_2_4GHz_Value = 0;
  18. float Ach_Wifi_5_8GHz_Value = 0;
  19. float Ach_30G_28_28_5_Value = 0;
  20. float Ach_30G_28_5_29_Value = 0;
  21. float Ach_30G_29_29_5_Value = 0;
  22. float Ach_30G_29_5_30_Value = 0;
  23. float Bch_150M_Value = 0;
  24. float Bch_Wifi_2_4GHz_Value = 0;
  25. float Bch_Wifi_5_8GHz_Value = 0;
  26. float Bch_30G_28_28_5_Value = 0;
  27. float Bch_30G_28_5_29_Value = 0;
  28. float Bch_30G_29_29_5_Value = 0;
  29. float Bch_30G_29_5_30_Value = 0;
  30. typedef struct{
  31. uint16_t RW_PIN;
  32. uint16_t RS;
  33. uint16_t E;
  34. uint16_t Reset;
  35. uint16_t DB0;
  36. uint16_t DB1;
  37. uint16_t DB2;
  38. uint16_t DB3;
  39. uint16_t DB4;
  40. uint16_t DB5;
  41. uint16_t DB6;
  42. uint16_t DB7;
  43. GPIO_TypeDef * RW_PIN_Port;
  44. GPIO_TypeDef * RS_Port;
  45. GPIO_TypeDef * E_Port;
  46. GPIO_TypeDef * DB0_Port;
  47. GPIO_TypeDef * DB1_Port;
  48. GPIO_TypeDef * DB2_Port;
  49. GPIO_TypeDef * DB3_Port;
  50. GPIO_TypeDef * DB4_Port;
  51. GPIO_TypeDef * DB5_Port;
  52. GPIO_TypeDef * DB6_Port;
  53. GPIO_TypeDef * DB7_Port;
  54. }lcd_Pin_st;
  55. void LCD_M68_DataWrite_COMMAND_Init(void){
  56. LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x0C);
  57. }
  58. void LCD_M68_DataWrite_COMMAND_Cusor_ON(void){
  59. LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x0F);
  60. }
  61. void LCD_M68_DataWrite_COMMAND_Cusor_OFF(void){
  62. LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x0C);
  63. }
  64. void LCD_M68_DataWrite_Clear(void){
  65. LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x01);
  66. }
  67. void LCD_M68_DataWrite_LineChage(LCD_line_t line){
  68. if(line == First_Line)
  69. LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x80);
  70. else
  71. LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0xC0);
  72. }
  73. uint8_t LCD_Str_Filter(uint8_t* str){
  74. uint8_t len = 0;
  75. uint8_t temp_str[32] = {0,};
  76. while (str[len] != NULL) // 자른 문자열이 나오지 않을 때까지 반복
  77. {
  78. len++;
  79. }
  80. // printf("data Lenth = %d \r\n",len);
  81. return len;
  82. }
  83. void LCD_M68_DataWrite_COMMAND(LCD_line_t line,uint8_t cmd,uint8_t* data){
  84. uint8_t len = 0;
  85. lcd_Pin_st lcdset;
  86. uint16_t temp_Pinbuf[8]={0,};
  87. GPIO_TypeDef* temp_Portbuf[8]={0,};
  88. lcdset.RW_PIN = GPIO_PIN_12;//pd
  89. lcdset.RS = GPIO_PIN_11;//pd
  90. lcdset.E = GPIO_PIN_13;//pd
  91. lcdset.DB0 = GPIO_PIN_14;//pd
  92. lcdset.DB1 = GPIO_PIN_15;//pd
  93. lcdset.DB2 = GPIO_PIN_2;//pg
  94. lcdset.DB3 = GPIO_PIN_3;//pg
  95. lcdset.DB5 = GPIO_PIN_4;//pg
  96. lcdset.DB4 = GPIO_PIN_5;//pg
  97. lcdset.DB6 = GPIO_PIN_6;//pg
  98. lcdset.DB7 = GPIO_PIN_7;//pg
  99. len = LCD_Str_Filter(&data[0]);
  100. for(uint8_t i = 0; i < len; i++){
  101. if(line != Line_default)
  102. LCD_M68_DataWrite_LineChage(line); // Line feed
  103. if(line == Second_Line)
  104. line = Line_default;
  105. HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
  106. HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
  107. //PIN Init
  108. if(cmd == Instruction_CMD){
  109. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
  110. }else{
  111. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
  112. }
  113. memcpy(&temp_Pinbuf[0] ,&lcdset.DB0 ,8);
  114. memcpy(&temp_Portbuf[0],&lcdset.DB0_Port,8);
  115. HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
  116. if(data[i] & 0x01)
  117. HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET);
  118. else
  119. HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET);
  120. if(data[i] & 0x02)
  121. HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET);
  122. else
  123. HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET);
  124. if(data[i] & 0x04)
  125. HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET);
  126. else
  127. HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET);
  128. if(data[i] & 0x08)
  129. HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET);
  130. else
  131. HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET);
  132. if(data[i] & 0x10)
  133. HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET);
  134. else
  135. HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET);
  136. if(data[i] & 0x20)
  137. HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET);
  138. else
  139. HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET);
  140. if(data[i] & 0x40)
  141. HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_SET);
  142. else
  143. HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
  144. if(data[i] & 0x80)
  145. HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_SET);
  146. else
  147. HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
  148. HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); //Init E Line
  149. if(cmd == Instruction_CMD){
  150. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
  151. }else{
  152. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
  153. }
  154. }
  155. }
  156. void LCD_M68_DataWrite_COMMAND2(LCD_line_t line,uint8_t cmd,uint8_t data){
  157. lcd_Pin_st lcdset;
  158. uint16_t temp_Pinbuf[8]={0,};
  159. GPIO_TypeDef* temp_Portbuf[8]={0,};
  160. lcdset.RW_PIN = GPIO_PIN_12;//pd
  161. lcdset.RS = GPIO_PIN_11;//pd
  162. lcdset.E = GPIO_PIN_13;//pd
  163. lcdset.DB0 = GPIO_PIN_14;//pd
  164. lcdset.DB1 = GPIO_PIN_15;//pd
  165. lcdset.DB2 = GPIO_PIN_2;//pg
  166. lcdset.DB3 = GPIO_PIN_3;//pg
  167. lcdset.DB5 = GPIO_PIN_4;//pg
  168. lcdset.DB4 = GPIO_PIN_5;//pg
  169. lcdset.DB6 = GPIO_PIN_6;//pg
  170. lcdset.DB7 = GPIO_PIN_7;//pg
  171. if(line != Line_default)
  172. LCD_M68_DataWrite_LineChage(line); // Line feed
  173. HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
  174. HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
  175. //PIN Init
  176. if(cmd == Instruction_CMD){
  177. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
  178. }else{
  179. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
  180. }
  181. memcpy(&temp_Pinbuf[0] ,&lcdset.DB0 ,8);
  182. memcpy(&temp_Portbuf[0],&lcdset.DB0_Port,8);
  183. HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
  184. if(data & 0x01)
  185. HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET);
  186. else
  187. HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET);
  188. if(data & 0x02)
  189. HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET);
  190. else
  191. HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET);
  192. if(data & 0x04)
  193. HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET);
  194. else
  195. HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET);
  196. if(data & 0x08)
  197. HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET);
  198. else
  199. HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET);
  200. if(data & 0x10)
  201. HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET);
  202. else
  203. HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET);
  204. if(data & 0x20)
  205. HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET);
  206. else
  207. HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET);
  208. if(data & 0x40)
  209. HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_SET);
  210. else
  211. HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
  212. if(data & 0x80)
  213. HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_SET);
  214. else
  215. HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
  216. HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); //Init E Line
  217. if(cmd == Instruction_CMD){
  218. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
  219. }else{
  220. HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
  221. }
  222. }
  223. Layer_t Curr_Layer =Menu_Layer;
  224. void Layer_Set(Layer_t layer){
  225. Curr_Layer = layer;
  226. }
  227. Layer_t Layer_Get(void){
  228. return Curr_Layer;
  229. }
  230. Layer_t prev_layer = 0xff;
  231. void Character_Lcd_chMenu(AttenButton_t button){
  232. static uint8_t initialize = 0;
  233. static uint8_t temp_button = 0xFF;
  234. Layer_t temp_Layer = Layer_Get();
  235. if(initialize == 0){
  236. switch(button){
  237. case Power_On :
  238. LCD_M68_DataWrite_Clear();
  239. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD,"Channel Setting");
  240. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,"press any Button");
  241. break;
  242. default:
  243. Lcd_AchSetting_Display();
  244. initialize = 1;
  245. break;
  246. }
  247. }else{
  248. if(button == Button_MENU || button == Button_ESC){
  249. Lcd_AchSetting_Display();
  250. }else{
  251. switch(temp_Layer){
  252. case AChSetting_Layer:
  253. if(button == Button_DOWN){
  254. Lcd_BchSetting_Display();
  255. }
  256. else if(button == Button_ENTER){
  257. Lcd_Ach150M_Display();
  258. }
  259. break;
  260. case BChSetting_Layer:
  261. if(button == Button_UP){
  262. Lcd_AchSetting_Display();
  263. }
  264. else if(button == Button_ENTER){
  265. Lcd_Bch150M_Display();
  266. }
  267. break;
  268. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  269. case AChSetting_150M_Layer:
  270. if(button == Button_DOWN){
  271. Lcd_AchWifi_Display();
  272. }
  273. else if(button == Button_ENTER){
  274. LCD_150M_ValueChange_Display(AChSetting_Change150M_Layer,&Ach_150M_Value,0);
  275. }
  276. break;
  277. case AChSetting_WIFI_Layer:
  278. if(button == Button_DOWN){
  279. Lcd_Ach30G_Display();
  280. }
  281. else if(button == Button_UP){
  282. Lcd_Ach150M_Display();
  283. }else if (button == Button_ENTER){
  284. LCD_Wifi_Freq_Select_Display(AChSetting_SelectWIFI2_4GHz_Layer,Ach_Wifi_2_4GHz_Value);
  285. }
  286. break;
  287. case AChSetting_30GHz_Layer:
  288. if(button == Button_UP){
  289. Lcd_AchWifi_Display();
  290. }else if (button == Button_ENTER){
  291. LCD_30G_Freq_Select_Display(AChSetting_Select30GHz28_28_5_Layer,Ach_30G_28_28_5_Value);
  292. }
  293. break;
  294. case BChSetting_150M_Layer:
  295. if(button == Button_DOWN){
  296. Lcd_BchWifi_Display();
  297. }else if (button == Button_ENTER){
  298. LCD_150M_ValueChange_Display(BChSetting_Change150M_Layer,&Bch_150M_Value,0);
  299. }
  300. break;
  301. case BChSetting_WIFI_Layer:
  302. if(button == Button_DOWN){
  303. Lcd_Bch30G_Display();
  304. }
  305. else if(button == Button_UP){
  306. Lcd_Bch150M_Display();
  307. }else if (button == Button_ENTER){
  308. LCD_Wifi_Freq_Select_Display(BChSetting_SelectWIFI2_4GHz_Layer,Bch_Wifi_2_4GHz_Value);
  309. }
  310. break;
  311. case BChSetting_30GHz_Layer:
  312. if(button == Button_UP){
  313. Lcd_BchWifi_Display();
  314. }else if (button == Button_ENTER){
  315. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz28_28_5_Layer,Bch_30G_28_28_5_Value);
  316. }
  317. break;
  318. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  319. case AChSetting_SelectWIFI2_4GHz_Layer:
  320. if(button == Button_DOWN){
  321. LCD_Wifi_Freq_Select_Display(AChSetting_SelectWIFI5_8GHz_Layer,Ach_Wifi_5_8GHz_Value);
  322. }
  323. else if (button == Button_ENTER){
  324. LCD_Wifi_ValueChange_Display(AChSetting_ChangeWIFI2_4GHz_Layer,&Ach_Wifi_2_4GHz_Value,0);
  325. }
  326. break;
  327. case AChSetting_SelectWIFI5_8GHz_Layer:
  328. if(button == Button_UP){
  329. LCD_Wifi_Freq_Select_Display(AChSetting_SelectWIFI2_4GHz_Layer,Ach_Wifi_2_4GHz_Value);
  330. }else if (button == Button_ENTER){
  331. LCD_Wifi_ValueChange_Display(AChSetting_ChangeWIFI5_8GHz_Layer,&Ach_Wifi_5_8GHz_Value,0);
  332. }
  333. break;
  334. case AChSetting_Select30GHz28_28_5_Layer:
  335. if(button == Button_DOWN){
  336. LCD_30G_Freq_Select_Display(AChSetting_Select30GHz28_5_29_Layer,Ach_30G_28_5_29_Value);
  337. }
  338. else if (button == Button_ENTER){
  339. LCD_30G_ValueChange_Display(AChSetting_Change30GHz28_28_5_Layer,&Ach_30G_28_28_5_Value,0);
  340. }
  341. break;
  342. case AChSetting_Select30GHz28_5_29_Layer:
  343. if(button == Button_DOWN){
  344. LCD_30G_Freq_Select_Display(AChSetting_Select30GHz29_29_5_Layer,Ach_30G_29_29_5_Value);
  345. }
  346. else if(button == Button_UP){
  347. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz28_28_5_Layer,Ach_30G_28_5_29_Value);
  348. }else if (button == Button_ENTER){
  349. LCD_30G_ValueChange_Display(AChSetting_Change30GHz28_5_29_Layer,&Ach_30G_28_5_29_Value,0);
  350. }
  351. break;
  352. case AChSetting_Select30GHz29_29_5_Layer:
  353. if(button == Button_DOWN){
  354. LCD_30G_Freq_Select_Display(AChSetting_Select30GHz29_5_30_Layer,Ach_30G_29_5_30_Value);
  355. }
  356. else if(button == Button_UP){
  357. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz28_5_29_Layer,Ach_30G_28_28_5_Value);
  358. }else if (button == Button_ENTER){
  359. LCD_30G_ValueChange_Display(AChSetting_Change30GHz29_29_5_Layer,&Ach_30G_29_29_5_Value,0);
  360. }
  361. break;
  362. case AChSetting_Select30GHz29_5_30_Layer:
  363. if(button == Button_UP){
  364. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz29_29_5_Layer,Ach_30G_28_5_29_Value);
  365. }else if (button == Button_ENTER){
  366. LCD_30G_ValueChange_Display(AChSetting_Change30GHz29_5_30_Layer,&Ach_30G_29_5_30_Value,0);
  367. }
  368. break;
  369. case BChSetting_SelectWIFI2_4GHz_Layer:
  370. if(button == Button_DOWN){
  371. LCD_Wifi_Freq_Select_Display(BChSetting_SelectWIFI5_8GHz_Layer,Bch_Wifi_5_8GHz_Value);
  372. }
  373. else if (button == Button_ENTER){
  374. LCD_Wifi_ValueChange_Display(BChSetting_ChangeWIFI2_4GHz_Layer,&Bch_Wifi_2_4GHz_Value,0);
  375. }
  376. break;
  377. case BChSetting_SelectWIFI5_8GHz_Layer:
  378. if(button == Button_UP){
  379. LCD_Wifi_Freq_Select_Display(BChSetting_SelectWIFI2_4GHz_Layer,Bch_Wifi_2_4GHz_Value);
  380. }else if (button == Button_ENTER){
  381. LCD_Wifi_ValueChange_Display(BChSetting_ChangeWIFI5_8GHz_Layer,&Bch_Wifi_5_8GHz_Value,0);
  382. }
  383. break;
  384. case BChSetting_Select30GHz28_28_5_Layer:
  385. if(button == Button_DOWN){
  386. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz28_5_29_Layer,Bch_30G_28_5_29_Value);
  387. }
  388. else if (button == Button_ENTER){
  389. LCD_30G_ValueChange_Display(BChSetting_Change30GHz28_28_5_Layer,&Bch_30G_28_28_5_Value,0);
  390. }
  391. break;
  392. case BChSetting_Select30GHz28_5_29_Layer:
  393. if(button == Button_DOWN){
  394. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz29_29_5_Layer,Bch_30G_29_29_5_Value);
  395. }
  396. else if(button == Button_UP){
  397. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz28_28_5_Layer,Bch_30G_28_5_29_Value);
  398. }else if (button == Button_ENTER){
  399. LCD_30G_ValueChange_Display(BChSetting_Change30GHz28_5_29_Layer,&Bch_30G_28_5_29_Value,0);
  400. }
  401. break;
  402. case BChSetting_Select30GHz29_29_5_Layer:
  403. if(button == Button_DOWN){
  404. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz29_5_30_Layer,Bch_30G_29_5_30_Value);
  405. }
  406. else if(button == Button_UP){
  407. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz28_5_29_Layer,Bch_30G_28_28_5_Value);
  408. }else if (button == Button_ENTER){
  409. LCD_30G_ValueChange_Display(BChSetting_Change30GHz29_29_5_Layer,&Bch_30G_29_29_5_Value,0);
  410. }
  411. break;
  412. case BChSetting_Select30GHz29_5_30_Layer:
  413. if(button == Button_UP){
  414. LCD_30G_Freq_Select_Display(BChSetting_Select30GHz29_29_5_Layer,Bch_30G_28_5_29_Value);
  415. }else if (button == Button_ENTER){
  416. LCD_30G_ValueChange_Display(BChSetting_Change30GHz29_5_30_Layer,&Bch_30G_29_5_30_Value,0);
  417. }
  418. break;
  419. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  420. case AChSetting_Change150M_Layer:
  421. if(button == Button_UP){
  422. LCD_150M_ValueChange_Display(temp_Layer,&Ach_150M_Value,0.5);
  423. printf("LINE : %d",__LINE__);
  424. }
  425. else if(button == Button_DOWN){
  426. LCD_150M_ValueChange_Display(temp_Layer,&Ach_150M_Value,-0.5);
  427. printf("LINE : %d",__LINE__);
  428. }
  429. else if(button == Button_ENTER){
  430. Lcd_Ach150M_Display();
  431. }
  432. break;
  433. case AChSetting_ChangeWIFI2_4GHz_Layer:
  434. if(button == Button_UP){
  435. LCD_Wifi_ValueChange_Display(temp_Layer,&Ach_Wifi_2_4GHz_Value,0.5);
  436. }
  437. else if(button == Button_DOWN){
  438. LCD_Wifi_ValueChange_Display(temp_Layer,&Ach_Wifi_2_4GHz_Value,-0.5);
  439. }
  440. else if(button == Button_ENTER){
  441. Lcd_AchWifi_Display();
  442. }
  443. break;
  444. case AChSetting_ChangeWIFI5_8GHz_Layer:
  445. if(button == Button_UP){
  446. LCD_Wifi_ValueChange_Display(temp_Layer,&Ach_Wifi_5_8GHz_Value,0.5);
  447. }
  448. else if(button == Button_DOWN){
  449. LCD_Wifi_ValueChange_Display(temp_Layer,&Ach_Wifi_5_8GHz_Value,-0.5);
  450. }
  451. else if(button == Button_ENTER){
  452. Lcd_AchWifi_Display();
  453. }
  454. break;
  455. case AChSetting_Change30GHz28_28_5_Layer:
  456. if(button == Button_UP){
  457. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_28_28_5_Value,0.5);
  458. }
  459. else if(button == Button_DOWN){
  460. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_28_28_5_Value,-0.5);
  461. }
  462. else if(button == Button_ENTER){
  463. Lcd_Ach30G_Display();
  464. }
  465. break;
  466. case AChSetting_Change30GHz28_5_29_Layer:
  467. if(button == Button_UP){
  468. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_28_5_29_Value,0.5);
  469. }
  470. else if(button == Button_DOWN){
  471. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_28_5_29_Value,0.5);
  472. }
  473. else if(button == Button_ENTER){
  474. Lcd_Ach30G_Display();
  475. }
  476. break;
  477. case AChSetting_Change30GHz29_29_5_Layer:
  478. if(button == Button_UP){
  479. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_29_29_5_Value,0.5);
  480. }
  481. else if(button == Button_DOWN){
  482. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_29_29_5_Value,0.5);
  483. }
  484. else if(button == Button_ENTER){
  485. Lcd_Ach30G_Display();
  486. }
  487. break;
  488. case AChSetting_Change30GHz29_5_30_Layer:
  489. if(button == Button_UP){
  490. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_29_5_30_Value,0.5);
  491. }
  492. else if(button == Button_DOWN){
  493. LCD_30G_ValueChange_Display(temp_Layer,&Ach_30G_29_5_30_Value,0.5);
  494. }
  495. else if(button == Button_ENTER){
  496. Lcd_Ach30G_Display();
  497. }
  498. break;
  499. case BChSetting_Change150M_Layer:
  500. if(button == Button_UP)
  501. LCD_150M_ValueChange_Display(temp_Layer,&Bch_150M_Value,0.5);
  502. else if(button == Button_DOWN)
  503. LCD_150M_ValueChange_Display(temp_Layer,&Bch_150M_Value,-0.5);
  504. else if(button == Button_ENTER)
  505. Lcd_Bch150M_Display();
  506. break;
  507. case BChSetting_ChangeWIFI2_4GHz_Layer:
  508. if(button == Button_UP){
  509. LCD_Wifi_ValueChange_Display(temp_Layer,&Bch_Wifi_2_4GHz_Value,0.5);
  510. }
  511. else if(button == Button_DOWN){
  512. LCD_Wifi_ValueChange_Display(temp_Layer,&Bch_Wifi_2_4GHz_Value,-0.5);
  513. }
  514. else if(button == Button_ENTER){
  515. Lcd_BchWifi_Display();
  516. }
  517. break;
  518. case BChSetting_ChangeWIFI5_8GHz_Layer:
  519. if(button == Button_UP){
  520. LCD_Wifi_ValueChange_Display(temp_Layer,&Bch_Wifi_5_8GHz_Value,0.5);
  521. }
  522. else if(button == Button_DOWN){
  523. LCD_Wifi_ValueChange_Display(temp_Layer,&Bch_Wifi_5_8GHz_Value,-0.5);
  524. }
  525. else if(button == Button_ENTER){
  526. Lcd_BchWifi_Display();
  527. }
  528. break;
  529. case BChSetting_Change30GHz28_28_5_Layer:
  530. if(button == Button_UP){
  531. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_28_28_5_Value,0.5);
  532. }
  533. else if(button == Button_DOWN){
  534. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_28_28_5_Value,-0.5);
  535. }
  536. else if(button == Button_ENTER){
  537. Lcd_Bch30G_Display();
  538. }
  539. break;
  540. case BChSetting_Change30GHz28_5_29_Layer:
  541. if(button == Button_UP){
  542. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_28_5_29_Value,0.5);
  543. }
  544. else if(button == Button_DOWN){
  545. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_28_5_29_Value,-0.5);
  546. }
  547. else if(button == Button_ENTER){
  548. Lcd_Bch30G_Display();
  549. }
  550. break;
  551. case BChSetting_Change30GHz29_29_5_Layer:
  552. if(button == Button_UP){
  553. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_29_29_5_Value,0.5);
  554. }
  555. else if(button == Button_DOWN){
  556. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_29_29_5_Value,-0.5);
  557. }
  558. else if(button == Button_ENTER){
  559. Lcd_Bch30G_Display();
  560. }
  561. break;
  562. case BChSetting_Change30GHz29_5_30_Layer:
  563. if(button == Button_UP){
  564. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_29_5_30_Value,0.5);
  565. }
  566. else if(button == Button_DOWN){
  567. LCD_30G_ValueChange_Display(temp_Layer,&Bch_30G_29_5_30_Value,-0.5);
  568. }
  569. else if(button == Button_ENTER){
  570. Lcd_Bch30G_Display();
  571. }
  572. break;
  573. /////////////////////////////////////////////////////////////////////////////////////////////////////////
  574. }
  575. }
  576. }
  577. }
  578. void Lcd_AchSetting_Display(void)
  579. {
  580. uint8_t temp_str[16] = {0,};
  581. static float value = 0;
  582. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  583. LCD_M68_DataWrite_Clear();
  584. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," A Channel ");
  585. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  586. sprintf(temp_str, " Setting");
  587. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  588. Layer_Set(AChSetting_Layer);
  589. }
  590. void Lcd_Ach150M_Display(void){
  591. uint8_t temp_str[16] = {0,};
  592. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  593. LCD_M68_DataWrite_Clear();
  594. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," A Ch 150MHz ");
  595. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  596. sprintf(temp_str, " %05.2f dB", Ach_150M_Value);
  597. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  598. Layer_Set(AChSetting_150M_Layer);
  599. }
  600. void Lcd_AchWifi_Display(void){
  601. uint8_t temp_str[16] = {0,};
  602. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  603. LCD_M68_DataWrite_Clear();
  604. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  605. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," A Ch WIFI ");
  606. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  607. sprintf(temp_str, " %05.2f dB", Ach_Wifi_2_4GHz_Value);
  608. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  609. Layer_Set(AChSetting_WIFI_Layer);
  610. }
  611. void Lcd_Ach30G_Display(void){
  612. uint8_t temp_str[16] = {0,};
  613. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  614. LCD_M68_DataWrite_Clear();
  615. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  616. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," A Ch 30G");
  617. sprintf(temp_str, " %05.2f dB", Bch_30G_28_28_5_Value);
  618. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  619. Layer_Set(AChSetting_30GHz_Layer);
  620. }
  621. void Lcd_BchSetting_Display(void)
  622. {
  623. uint8_t temp_str[16] = {0,};
  624. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  625. LCD_M68_DataWrite_Clear();
  626. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  627. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," B Channel");
  628. sprintf(temp_str, " Setting");
  629. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  630. Layer_Set(BChSetting_Layer);
  631. }
  632. void Lcd_Bch150M_Display(void)
  633. {
  634. uint8_t temp_str[16] = {0,};
  635. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  636. LCD_M68_DataWrite_Clear();
  637. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," B Ch 150MHz ");
  638. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  639. sprintf(temp_str, " %05.2f dB", Bch_150M_Value);
  640. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  641. Layer_Set(BChSetting_150M_Layer);
  642. }
  643. void Lcd_BchWifi_Display(void)
  644. {
  645. uint8_t temp_str[16] = {0,};
  646. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  647. LCD_M68_DataWrite_Clear();
  648. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  649. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," B Ch WIFI ");
  650. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  651. sprintf(temp_str, " %05.2f dB", Bch_Wifi_2_4GHz_Value);
  652. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  653. Layer_Set(BChSetting_WIFI_Layer);
  654. }
  655. void Lcd_Bch30G_Display(void)
  656. {
  657. uint8_t temp_str[16] = {0,};
  658. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  659. LCD_M68_DataWrite_Clear();
  660. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  661. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," B Ch 30G");
  662. sprintf(temp_str, " %05.2f dB", Bch_30G_28_28_5_Value);
  663. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  664. Layer_Set(BChSetting_30GHz_Layer);
  665. }
  666. void LCD_150M_ValueChange_Display(Layer_t layer,float* data,float offset){
  667. uint8_t temp_str[16] = {0,};
  668. LCD_M68_DataWrite_COMMAND_Cusor_ON();
  669. *data += offset;
  670. if(*data > 30){
  671. *data = 30;
  672. return;
  673. }else if (*data < 0){
  674. *data = 0;
  675. return;
  676. }
  677. sprintf(temp_str, " %05.2f dB", *data);
  678. printf("temp_STR : : : %s \r\n",temp_str);
  679. printf("*data %f %f\r\n",*data,offset);
  680. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  681. Layer_Set(layer);
  682. }
  683. void LCD_Wifi_ValueChange_Display(Layer_t layer,float* data,float offset){
  684. uint8_t temp_str[16] = {0,};
  685. LCD_M68_DataWrite_COMMAND_Cusor_ON();
  686. *data += offset;
  687. if(*data > 120){
  688. *data = 120;
  689. return;
  690. }else if (*data < 0){
  691. *data = 0;
  692. return;
  693. }
  694. sprintf(temp_str, " %05.2f dB", *data);
  695. printf("temp_STR : : : %s \r\n",temp_str);
  696. printf("*data %f %f\r\n",*data,offset);
  697. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  698. Layer_Set(layer);
  699. }
  700. void LCD_30G_ValueChange_Display(Layer_t layer,float* data,float offset){
  701. uint8_t temp_str[16] = {0,};
  702. LCD_M68_DataWrite_COMMAND_Cusor_ON();
  703. *data += offset;
  704. if(*data > 90){
  705. *data = 90;
  706. return;
  707. }else if (*data < 0){
  708. *data = 0;
  709. return;
  710. }
  711. sprintf(temp_str, " %05.2f dB", *data);
  712. printf("temp_STR : : : %s \r\n",temp_str);
  713. printf("*data %f %f\r\n",*data,offset);
  714. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  715. Layer_Set(layer);
  716. }
  717. ////////////////////////////////////////////////////////////////////////////////////////////
  718. void LCD_Wifi_Freq_Select_Display(Layer_t layer,float db_value)
  719. {
  720. uint8_t temp_str[16] = {0,};
  721. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  722. LCD_M68_DataWrite_Clear();
  723. if(layer == AChSetting_SelectWIFI2_4GHz_Layer || layer == BChSetting_SelectWIFI2_4GHz_Layer){
  724. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," 2.4GHz ");
  725. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  726. }
  727. else if (layer == AChSetting_SelectWIFI5_8GHz_Layer || layer == BChSetting_SelectWIFI5_8GHz_Layer){
  728. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  729. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," 5.8GHz ");
  730. }
  731. sprintf(temp_str, " %05.2f dB", db_value);
  732. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  733. Layer_Set(layer);
  734. }
  735. void LCD_30G_Freq_Select_Display(Layer_t layer,float db_value)
  736. {
  737. uint8_t temp_str[16] = {0,};
  738. LCD_M68_DataWrite_COMMAND_Cusor_OFF();
  739. LCD_M68_DataWrite_Clear();
  740. if(layer == AChSetting_Select30GHz28_28_5_Layer || layer == BChSetting_Select30GHz28_28_5_Layer){
  741. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," 28~28.5 GHz ");
  742. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  743. }
  744. else if(layer == AChSetting_Select30GHz28_5_29_Layer || layer == BChSetting_Select30GHz28_5_29_Layer){
  745. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  746. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," 28.5~29 GHz ");
  747. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  748. }
  749. else if(layer == AChSetting_Select30GHz29_29_5_Layer || layer == BChSetting_Select30GHz29_29_5_Layer){
  750. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  751. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," 29~29.5 GHz ");
  752. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
  753. }
  754. else if(layer == AChSetting_Select30GHz29_5_30_Layer || layer == BChSetting_Select30GHz29_5_30_Layer){
  755. LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
  756. LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," 29.5~30 GHz ");
  757. }
  758. sprintf(temp_str, " %05.2f dB", db_value);
  759. LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,temp_str);
  760. Layer_Set(layer);
  761. }
  762. ////////////////////////////////////////////////////////////////////////////////////////////