123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301 |
- #include "main.h"
- void LCD_16T202DA1EA_Init(void){
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_12, GPIO_PIN_SET);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOD, GPIO_PIN_10, GPIO_PIN_SET);
- }
- typedef struct{
- uint16_t RW_PIN;
- uint16_t RS;
- uint16_t E;
- uint16_t Reset;
- uint16_t DB0;
- uint16_t DB1;
- uint16_t DB2;
- uint16_t DB3;
- uint16_t DB4;
- uint16_t DB5;
- uint16_t DB6;
- uint16_t DB7;
- GPIO_TypeDef * RW_PIN_Port;
- GPIO_TypeDef * RS_Port;
- GPIO_TypeDef * E_Port;
- GPIO_TypeDef * DB0_Port;
- GPIO_TypeDef * DB1_Port;
- GPIO_TypeDef * DB2_Port;
- GPIO_TypeDef * DB3_Port;
- GPIO_TypeDef * DB4_Port;
- GPIO_TypeDef * DB5_Port;
- GPIO_TypeDef * DB6_Port;
- GPIO_TypeDef * DB7_Port;
- }lcd_Pin_st;
- void LCD_M68_DataWrite_COMMAND_Init(void){
- LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x0F);
- }
- void LCD_M68_DataWrite_Clear(void){
- LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x01);
- }
- void LCD_M68_DataWrite_LineChage(LCD_line_t line){
- if(line == First_Line)
- LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0x80);
- else
- LCD_M68_DataWrite_COMMAND2(Line_default,Instruction_CMD,0xC0);
- }
- uint8_t LCD_Str_Filter(uint8_t* str){
- uint8_t len = 0;
- uint8_t temp_str[32] = {0,};
- while (str[len] != NULL) // 자른 문자열이 나오지 않을 때까지 반복
- {
- len++;
- }
- printf("data Lenth = %d \r\n",len);
- return len;
- }
- void LCD_M68_DataWrite_COMMAND(LCD_line_t line,uint8_t cmd,uint8_t* data){
- uint8_t len = 0;
- lcd_Pin_st lcdset;
- uint16_t temp_Pinbuf[8]={0,};
- GPIO_TypeDef* temp_Portbuf[8]={0,};
- lcdset.RW_PIN = GPIO_PIN_12;//pd
- lcdset.RS = GPIO_PIN_11;//pd
- lcdset.E = GPIO_PIN_13;//pd
- lcdset.DB0 = GPIO_PIN_14;//pd
- lcdset.DB1 = GPIO_PIN_15;//pd
- lcdset.DB2 = GPIO_PIN_2;//pg
- lcdset.DB3 = GPIO_PIN_3;//pg
- lcdset.DB5 = GPIO_PIN_4;//pg
- lcdset.DB4 = GPIO_PIN_5;//pg
- lcdset.DB6 = GPIO_PIN_6;//pg
- lcdset.DB7 = GPIO_PIN_7;//pg
- len = LCD_Str_Filter(&data[0]);
- for(uint8_t i = 0; i < len; i++){
- if(line != Line_default)
- LCD_M68_DataWrite_LineChage(line); // Line feed
- if(line == Second_Line)
- line = Line_default;
- HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
- //PIN Init
- if(cmd == Instruction_CMD){
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
- }else{
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
- }
- memcpy(&temp_Pinbuf[0] ,&lcdset.DB0 ,8);
- memcpy(&temp_Portbuf[0],&lcdset.DB0_Port,8);
-
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
- if(data[i] & 0x01)
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET);
-
- if(data[i] & 0x02)
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET);
-
- if(data[i] & 0x04)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET);
-
- if(data[i] & 0x08)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET);
-
- if(data[i] & 0x10)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET);
-
- if(data[i] & 0x20)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET);
-
- if(data[i] & 0x40)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
-
- if(data[i] & 0x80)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
-
-
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); //Init E Line
- if(cmd == Instruction_CMD){
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
- }else{
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
- }
- }
- }
- void LCD_M68_DataWrite_COMMAND2(LCD_line_t line,uint8_t cmd,uint8_t data){
- uint8_t len = 0;
- lcd_Pin_st lcdset;
- uint16_t temp_Pinbuf[8]={0,};
- GPIO_TypeDef* temp_Portbuf[8]={0,};
- lcdset.RW_PIN = GPIO_PIN_12;//pd
- lcdset.RS = GPIO_PIN_11;//pd
- lcdset.E = GPIO_PIN_13;//pd
- lcdset.DB0 = GPIO_PIN_14;//pd
- lcdset.DB1 = GPIO_PIN_15;//pd
- lcdset.DB2 = GPIO_PIN_2;//pg
- lcdset.DB3 = GPIO_PIN_3;//pg
- lcdset.DB5 = GPIO_PIN_4;//pg
- lcdset.DB4 = GPIO_PIN_5;//pg
- lcdset.DB6 = GPIO_PIN_6;//pg
- lcdset.DB7 = GPIO_PIN_7;//pg
- len = LCD_Str_Filter(&data);
- if(line != Line_default)
- LCD_M68_DataWrite_LineChage(line); // Line feed
- HAL_GPIO_WritePin(GPIOD, lcdset.E|lcdset.RS|lcdset.RW_PIN|lcdset.DB0|lcdset.DB1 , GPIO_PIN_RESET);
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2|lcdset.DB3|lcdset.DB4|lcdset.DB5|lcdset.DB6|lcdset.DB7, GPIO_PIN_RESET);
- //PIN Init
- if(cmd == Instruction_CMD){
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
- }else{
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
- }
- memcpy(&temp_Pinbuf[0] ,&lcdset.DB0 ,8);
- memcpy(&temp_Portbuf[0],&lcdset.DB0_Port,8);
-
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_SET);
- if(data & 0x01)
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOD, lcdset.DB0, GPIO_PIN_RESET);
-
- if(data & 0x02)
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOD, lcdset.DB1, GPIO_PIN_RESET);
-
- if(data & 0x04)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB2, GPIO_PIN_RESET);
-
- if(data & 0x08)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB3, GPIO_PIN_RESET);
-
- if(data & 0x10)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB4, GPIO_PIN_RESET);
-
- if(data & 0x20)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB5, GPIO_PIN_RESET);
-
- if(data & 0x40)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB6, GPIO_PIN_RESET);
-
- if(data & 0x80)
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_SET);
- else
- HAL_GPIO_WritePin(GPIOG, lcdset.DB7, GPIO_PIN_RESET);
-
-
- HAL_GPIO_WritePin(GPIOD, lcdset.E , GPIO_PIN_RESET); //Init E Line
- if(cmd == Instruction_CMD){
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_SET); //Init Data CMD
- }else{
- HAL_GPIO_WritePin(GPIOD, lcdset.RS , GPIO_PIN_RESET); // Init Instruction CMD
- }
- }
- typedef enum{
- Menu_Layer = 0,
- }Layer_t;
- Layer_t Curr_Layer =Menu_Layer;
- void Layer_Set(Layer_t layer){
- Curr_Layer = layer;
- }
- Layer_t Layer_Get(void){
- return Curr_Layer;
- }
- void Character_Lcd_chMenu(AttenButton_t button){
- static uint8_t initialize = 0;
- static uint8_t temp_button = 0xFF;
- Layer_t temp_layer = Layer_Get();
- LCD_M68_DataWrite_Clear();
- if(initialize == 0){
- switch(button){
- case Power_On :
- LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD,"Channel Setting");
- LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD,"press any Button");
- break;
- default:
- LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
- LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," A Channel");
- LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD," Setting");
- initialize = 1;
- Layer_Set(Menu_Layer);
- break;
- }
- }else{
- if(temp_button != button){
- if(temp_layer == Menu_Layer){
- switch(button){
- case Button_UP:
- LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," A Channel ");
- LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x10);
- LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD," Setting");
- break;
- case Button_DOWN:
- LCD_M68_DataWrite_COMMAND2(Line_default,Data_CMD,0x11);
- LCD_M68_DataWrite_COMMAND(Line_default,Data_CMD," B Channel");
- LCD_M68_DataWrite_COMMAND(Second_Line,Data_CMD," Setting");
- break;
- }
- }
- temp_layer = button;
- }
- }
- }
- void Character_Lcd_AttenSet(Switch_case_t ch,Switch_case_t button){
- if(ch == ACh_Setting){
- switch(button){
- case Atten_150M:break;
- case Atten_Wifi:break;
- case Atten_30G:break;
- }
- }
- else if(ch == BCh_Setting){
- switch(button){
- case Atten_150M:break;
- case Atten_Wifi:break;
- case Atten_30G:break;
- }
- }
- }
|