uint8_t arrow_function(void){ uint8_t ascii_code=0; // Variável para receber valor ascii static uint8_t menu=0; // Variável para definir qual a escolhas será feita no menu ascii_code=GetKey(); // GetKey retorna valor ascii apenas 1 vez quando tem algum novo if (ascii_code==6){ menu=1; LCD_DrawFullRect(0, 0, 240, 320, LCD_COLOR_BLACK); //Imprime retângulo branco do tamanha da tela(apaga tudo) LCD_DrawFullRect(35, 60, 170, 80, aktColor); imprimir_menu(); } if (ascii_code==7){ menu=2; LCD_DrawFullRect(0, 0, 240, 320, LCD_COLOR_BLACK); //Imprime retângulo branco do tamanha da tela(apaga tudo) LCD_DrawFullRect(35, 190, 170, 80, aktColor); imprimir_menu(); } if (ascii_code==4) return(menu); else return(0); }
int main(){ int salir=0; //Flag para cerrar el programa int opcion; //variable aux para guardar la opcion while(salir==0){ opcion=-1; //solamente para q no qued guardada la ultima opcion imprimir_menu(); fflush(stdin); scanf("%d",&opcion); //obtengo la nueva opcion if(opcion==3)salir=1; else if(opcion==1)agregar_invitado(); else if(opcion==2)ver_invitados(); } return 0; }
int main(void) { SystemInit(); // Configurações e inicialização do clock UB_LCD_Init(); // Inicialização LCD UB_LCD_LayerInit_Fullscreen(); // Inicialização da camadas da tela UB_LCD_SetLayer_1(); // Inicialização da camadas do fundo UB_LCD_FillLayer(RGB_COL_WHITE); // Cor do fundo UB_LCD_SetLayer_2(); // Inicialização da camadas em primeiro plano UB_LCD_FillLayer(RGB_COL_WHITE); // Cor do primeiro plano CurrentFrameBuffer=LCD_FRAME_BUFFER + LCD_FRAME_OFFSET; // Variáveis de controle da tela aktColor=LCD_COLOR_BLUE; // Variável para armazenar cor de preferência menu=0; //Programa inicia no menu inicial if(UB_Touch_Init()!=SUCCESS) // Verifica se a inicialização da tela sensível ao toque ocorreu corretamente { UB_Font_DrawString(10,28,"Touch error",&Arial_11x20,RGB_COL_WHITE,RGB_COL_RED); //Imprime mensagem de erro UB_Font_DrawString(10,46,"Reconecte a energia",&Arial_11x20,RGB_COL_WHITE,RGB_COL_RED); while(1); //Impede o progresso das demais rotinas } USB_HID_HOST_STATUS_t host_status; // Variável para armazenar o estado da comunicação USB USB_Init(); // Inicializações para utilizar USB while(1){ LCD_DrawFullRect(0, 0, 240, 320, LCD_COLOR_BLACK); // Imprime retângulo branco do tamanha da tela(apaga tudo) imprimir_menu(); // Imprime grafismo do menu inicial //-------------------------------------------------------------- while(menu==0) // Enquanto menu==0 o programa fica no menu inicial { host_status=USB_Function(); // Esta função deve ser chamada periodicamente para o funcionamento do teclado if(host_status!=USB_HID_DEV_DETACHED) // Se o USB não tiver sido desconectado menu = arrow_function(); // Chama função que controla o selecionamento do menu UB_Touch_Read(); // Lê informações do touch if(Touch_Data.status==TOUCH_PRESSED) { if((Touch_Data.yp < 130) && (Touch_Data.yp >= 70)) { // Verifica limites da região de um botão touch na tela if((Touch_Data.xp < 215) && (Touch_Data.xp > 45)) { menu=1; // Se o toque ocorreu muda o estado do programa } } } if(Touch_Data.status==TOUCH_PRESSED) { if((Touch_Data.yp < 260) && (Touch_Data.yp >= 200)) { // Verifica limites da região de um botão touch na tela if((Touch_Data.xp < 215) && (Touch_Data.xp > 45)) { menu=2; // Se o toque ocorreu muda o estado do programa } } } if(menu==1){ // menu==1 equivale ao modo de Digitação pos.x = 10; // Posições onde o cursor de digitação começa pos.y = 10; LCD_DrawFullRect(0, 0, 240, 320, LCD_COLOR_WHITE); // Imprime retângulo branco do tamanha da tela(apaga tudo) } if(menu==2){ // menu==2 equivale ao modo de Opções LCD_DrawFullRect(0, 0, 240, 320, LCD_COLOR_WHITE); // Imprime retângulo branco do tamanha da tela(apaga tudo) UB_Font_DrawString(10,10,"Cor do texto",&Arial_11x20,aktColor,RGB_COL_WHITE); //Imprime mensagem } } while(menu==1) // menu==1 equivale ao modo de Digitação { host_status=USB_Function(); //Esta função deve ser chamada periodicamente para o funcionamento do teclado UB_Touch_Read(); //Leitura do Touch LCD_DrawLine(pos.x,pos.y, 20, LCD_DIR_VERTICAL, RGB_COL_WHITE); if(Touch_Data.status==TOUCH_PRESSED) { if((Touch_Data.yp < 317) && (Touch_Data.yp >= 3)) { // Verifica se touch foi na tela( para evitar erros} if((Touch_Data.xp < 237) && (Touch_Data.xp > 3)) { pos.x=Touch_Data.xp; // Posiciona o cursor sobre o local tocado pos.y=Touch_Data.yp; LCD_DrawLine(pos.x,pos.y, 20, LCD_DIR_VERTICAL, RGB_COL_WHITE); } } } if(host_status!=USB_HID_DEV_DETACHED) //Se o USB não tiver sido desconectado pos = key_function(pos); //Interpreta todas teclas e funções do teclado, retorna posição do cursor if(host_status==USB_HID_DEV_CONNECTED) //Se o USB for reconectado LCD_DrawFullRect(0, 302, 240, 320, LCD_COLOR_WHITE); //Apaga mensagem pedindo para conectar if(host_status==USB_HID_DEV_DETACHED) //Se o USB for desconectado UB_Font_DrawString(10,302,"Teclado desconectado",&Arial_11x20,RGB_COL_RED,RGB_COL_WHITE); //Imprime mensagem } while(menu==2) // menu==2 equivale ao modo de Opções { host_status=USB_Function(); //Esta função deve ser chamada periodicamente para o funcionamento do teclado if(host_status!=USB_HID_DEV_DETACHED) //Se o USB não tiver sido desconectado menu = opcoes(); } } }