-->

Attepmt to Accessing Keyboad Up and down Key by C programm for a project

By
<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDK4I6uKmMOILPqNPi34Ip8Jwp2iKWsVp15PjpH9nZMlCEo36DmJom5qQ3M555omOA68qZ0A_Ei5kFY1O_bkQCOqvx5l4XWL4GdcoFuR3GyuMJIp3g8jERYCBfjlaCvGKzSo7hwhd4TDvF/s1600/Capture.PNG" imageanchor="1"><img border="0" data-original-height="604" data-original-width="846" height="456" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDK4I6uKmMOILPqNPi34Ip8Jwp2iKWsVp15PjpH9nZMlCEo36DmJom5qQ3M555omOA68qZ0A_Ei5kFY1O_bkQCOqvx5l4XWL4GdcoFuR3GyuMJIp3g8jERYCBfjlaCvGKzSo7hwhd4TDvF/s640/Capture.PNG" width="640" /></a>
<br />
<pre class="brush:csharp"></pre>
<pre class="brush:c++"> *<b> main.c</b>
 *
 *  Created on: Aug 12, 2017
 *      Author: thannara123




#include<stdio .h="">
#define FALSE 0
#define TRUE  1  // 0r //!FALSE
struct menu
 {
   char menu_up_key;
   char menu_down_key;
   char menu_enter_key :1; // bit feild 1 bit
 };
struct menu s1= {0}; //s1.menu_up-key =1;
void struct_1( struct menu,const char *menu_display[]);



int main()
{

     const char *menu_display[10];
      menu_display[0] = "Menu0";
      menu_display[1] = "Menu1";
      menu_display[2] = "Menu2";
      menu_display[3] = "Menu3";
      menu_display[4] = "Menu4";
      menu_display[5] = "menu 5";
      menu_display[6] = "menu 6";


       struct_1(s1,menu_display);
             getchar();
             return 0;

      }


void struct_1(struct menu s1 ,const char *menu_display[])
{

     char ch;
      do{
            ch=getch();


            if(ch!='\0')
            {
              ch=getch();
              if(ch=='H')
              {
               s1.menu_up_key++;
               if(s1.menu_up_key==7)
                 s1.menu_up_key =0;
            // printf("UP\n");
                  printf(" %s\n",*(s1.menu_up_key+menu_display));
               }
         else    if(ch=='P')
               {
              s1.menu_up_key--;
              if(s1.menu_up_key==-1)
                  {  s1.menu_up_key =6;
                   goto here;
                  }
                //printf("down\n");

                  here:
         printf("%s\n",*(s1.menu_up_key+menu_display));


                   }

            }
               }
              while(ch!='e');// while oka key
}
</stdio></pre>
<pre class="brush:csharp">/*
 * button_key.c
 *
 * Created: 7/30/2017 12:02:39 PM
 *  Author: Krishna
 */ #include <avr io.h="">
 #include "delay.h"
  #include "button_key.h"
  #include "lcd.h" 
   
void menu_key_display(struct menu s1,const char *menu_display[]);
void UP_Down_Keyvalue(struct menu s1,int i,int j);

 /* Function Key Value For get key  */
int Key_pressed(void)
 {
 while(1){
    if (LEFT_S) {  while(LEFT_S);return 1; }     
 if (RIGHT_S){  while(RIGHT_S);return 2; }
 if (UP_S)  {  while(UP_S); return 3; }
 if (DOWN_S) { while(DOWN_S);return 4 ; }
 if (OK_S) { while(OK_S);return 5 ; }
 }
 }


 /* Function Key Value For Up Key  &amp; Enter*/

 void menu_key_display(struct menu s1,const char *menu_display[])
 {  
  int ch;
   int a;
  int  menu_position =0;
   LCD_DisplayString(menu_display[menu_position]);
            do{ 
   
    repat:         
    ch = Key_pressed();
    if(ch==1||ch==2)
    {
                  if(ch==2)
                    {  if(ch==2)
                   { if(s1.menu_side_key==4)
                     s1.menu_side_key = 0;
                  LCD_Clear();
                  LCD_GoToLine(0);
                              LCD_DisplayString(*((++s1.menu_side_key)+menu_display));
         menu_position=1;           
        
                 }
                      }
                   else if(ch==1)
                   {  
                             if(ch==1)
                    {if(s1.menu_side_key==1 ||s1.menu_side_key==0)
                      {
                    s1.menu_side_key=5;
                      }
                      LCD_Clear();
                            LCD_DisplayString(*((--s1.menu_side_key)+menu_display));                           
          menu_position=1;  
                         }
                   } 
          }
     
    if(menu_position==0)
    goto repat;
        }while(ch!=5);
      
        a = s1.menu_side_key;
  switch(a)
     {
 case 1: // set time
          {
    LCD_Clear();
       LCD_GoToLine(0);
       LCD_DisplayString(menu_display[5]);
    LCD_GoToLine(1);
    LCD_DisplayString("  HH:MM:SS:PM/AM");
    UP_Down_Keyvalue(s1,2,4);   
          break;
          }
 case 2: // Set date
        {
         LCD_Clear();
         LCD_GoToLine(0);
         LCD_DisplayString(menu_display[6]);
      LCD_GoToLine(1);
      LCD_DisplayString("  DD:MM:YY");
      UP_Down_Keyvalue(s1,2,3);    
         break;
        }

 case 3: // set alarm
          {
         LCD_Clear();
            LCD_GoToLine(0);
         LCD_DisplayString(menu_display[7]);
      LCD_GoToLine(1);
      LCD_DisplayString(" HH:MM:SS:AM/PM");
      UP_Down_Keyvalue(s1,2,4);     
          break;
             }
 case 4:  // set alarm
           {
            LCD_Clear();
          LCD_GoToLine(0);
          LCD_DisplayString(menu_display[8]);
    LCD_GoToLine(1);
    LCD_DisplayString("  HH:MM:SS:PM/AM");
    UP_Down_Keyvalue(s1,2,4);   
          break;
            }
     }
   
  while(Key_pressed()!=5);
 
      
 }




 /* Function Key Value For UP_Down Key */
 void UP_Down_Keyvalue(struct menu s1,int i,int j)
 {   
 
  int ch,lower,upper;   
  do{ 
    if(j==4)
     {
      if(i==2)upper=1;
      if(i==3)upper=9;
      if(i==5)upper=5;
      if(i==8)upper =5;
      if(i==9)upper =9;
     }
      if(UP_S)  
      {
      while(UP_S);   
      if(s1.menu_up_key==upper)
      s1.menu_up_key = lower-1;
      LCD_GoToXY(1,i);
      LCD_Printf("%d",++s1.menu_up_key);
      s1.time[i-2]=s1.menu_up_key;         
      }
   else if(DOWN_S) // down
            
          {    while(DOWN_S);
            if (s1.menu_up_key==lower)
            s1.menu_up_key = upper+1;       
            LCD_GoToXY(1,i);
            LCD_Printf("%d",--s1.menu_up_key);
      s1.time[i-2]=s1.menu_up_key;      
     }
          if(RIGHT_S)
      
             { while(RIGHT_S);
       s1.menu_up_key=0;
          if(i==9) goto exit1;
          if(i==3||i==6)
          ++i;
          i++;
              }
      exit1:
           if (LEFT_S)
             { while(LEFT_S);
        s1.menu_up_key=0;
            if(i==2) goto exit2;        
            if(i==5||i==8)
            --i;
            i--;
    
             }
    exit2:continue;
  
  
  } while (ch!=5);  // if Okay key exit loop
 
 }







</avr></pre>
<div class="separator" style="clear: both; text-align: center;">
</div>
</div>

More Posts

gElectron. Powered by Blogger.

Contributors

16x2 LCD Interfacing with STM32,STM32F103C6

 16x2 LCD  Interfacing with STM32,STM32F103C6 lcd_init(); LCD_LINE1; lcd_String(" GeElectron"); LCD_LINE2; lc...

Contact Form

Name

Email *

Message *

Contact us

Name

Email *

Message *

Follow Us

https://www.facebook.com/gElectron-393939667321867/ FBbox/https://www.facebook.com/IVYthemes

Comments

[blogger]

MKRdezign

Test
google.com, pub-8429441124104529, DIRECT, f08c47fec0942fa0
[blogger]

Latest

[recent][newsticker]

Technology

Top Ads

RECENT COMMENTS

Subscribe Via Email

Subscribe to our newsletter to get the latest updates to your inbox. ;-)


Your email address is safe with us!

RECENT COMMENTS