⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lin15.c

📁 嵌入式下实验的新的驱动设计源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
                ioctl (fd, 4, &m_chinese);                m_chinese.x0 += 16;                s += 2;        }        close(fd);        return 0;}main(int argc, char **argv){        int fd1;       // int rt, i;       // unsigned char val;       // int temp;        int j=0;        int a=320;        int b=240;        int entx[40],enty[40];        int n=0;        int m=0;        int t=0;        if ((fd1 = open("/dev/kbd7312", 0)) < 0) {                printf("cannot open /dev/kbd7312\n");                exit(0);        };        menu();                    for (;;)        {                       value=ioctl(fd1, 0, 0);                switch(value)                {                     case 10:                          /*上移光标*/                               if (m==0) break;                                if (t==1) lcdlin(10);                               else if (t==2)                               {  clean();                                  color=11;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                  t=0;}                               else                                { rudder(a,b,1,n);                                 if (n==0)                                  { if (b>=240) b=b-220;                                   else b=b+20;}                                 else                                  { if (b>=240) b=b-238;                                   else b=b+2;}                                 rudder(a,b,color,n);  }                               break;                     case 14:                          /*下移光标*/                               if (m==0)                                {                                    clean();                                    color=2;                                    lcd_fillrect(0, 0, 320, 60,color);                                    english("file",40,20);                                    english("function",240,20);                                    color=4;                                    lcd_fillrect(110,0,210,60,color);                                    english("direction",120,20);                                    english(s[9],120,80);                                    english(s[12],120,110);                                    english(s[13],120,150);                                    english(s[14],120,180);                                    english(s[11],120,210);                                    break;                               }                               if (t==1) lcdlin(14);                               else                                {  rudder(a,b,1,n);                                  if (n==0)                                  { if (b<=20) b=b+220;                                    else b=b-20; }                                  else                                  { if (b<=5) b=b+238;                                    else b=b-2; }                                  rudder(a,b,color,n);  }                               break;                               case 13:                          /*左移光标*/                               if (m==0)                                {                                    clean();                                    color=2;                                    lcd_fillrect(0, 0, 320, 60,color);                                    english("direction",120,20);                                    english("function",240,20);                                    color=4;                                    lcd_fillrect(0, 0, 100, 60,color);                                    english("file",40,20);                                    english(s[0],40,100);                                    english(s[6],40,130);                                    english(s[15],40,160);                                    break;                               }                               if (t==1) lcdlin(13);                               else                                { rudder(a,b,1,n);                                 if (n==0)                                 { if(a>=320) a-=310;                                   else a=a+10;}                                 else                                  { if(a>=320) a-=318;                                   else a=a+2;}                                 rudder(a,b,color,n);  }                               break;                     case 15:                          /*右移光标*/                               if (m==0)                               {                                    clean();                                    color=2;                                    lcd_fillrect(0, 0, 320, 60,color);                                    english("file",40,20);                                    english("direction",120,20);                                    color=4;                                    lcd_fillrect(220,0,320,60,color);                                    english("function",240,20);                                    english(s[1],5,120);                                    english(s[2],5,150);                                    english(s[3],5,180);                                    english(s[4],5,210);                                    english(s[5],165,120);                                    english(s[7],165,150);                                    english(s[8],165,180);                                    english(s[10],165,210);                                    break;                               }                               if (t==1) lcdlin(15);                               else                                { rudder(a,b,1,n);                                 if (n==0)                                 { if(a<=10) a+=310;                                   else a=a-10;}                                 else                                  { if(a<=5) a+=318;                                   else a=a-2;}                                 rudder(a,b,color,n);  }                               break;                      case 12:                          /*enter键*/                               if (m==0) break;                               if (t==1) lcdlin(12);                               else if (t==2)                               {  clean();                                  color=13;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                  t=0;}                               else                                {  if(j==40) j-=40;                                  entx[j]=a;                                                 enty[j]=b;                                  rudder(a,b,1,n);                                  rudder(a,b,color,1);                                  a-=10;                                  rudder(a,b,color,n);                                             j++; }                               break;                         case 1:                               if (t==1) lcdlin(1);                               else if (t==2)                               {  clean();                                  color=2;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                   t=0;}                               else                               {  clean();                                  color=2;                                  rudder(a,b,color,n);                                  m=1;}                               break;                     case 2:                           /*在两点间画直线*/				printf("%d, %d", m, t);                               if (m==0) break;                               if (t==1) lcdlin(2);                               else if (t==2)                               {  clean();                                  color=3;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                   t=0;}                                else                                {  if (j<2) break;                             line(entx[j-2],enty[j-2],entx[j-1],enty[j-1]);}                               break;                      case 3:                           /*画矩形*/                               if (m==0) break;                               if (t==1) lcdlin(3);                               else if (t==2)                               {  clean();                                  color=4;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                   t=0;}                               else                                {  if (j<2) break;                               line(entx[j-2],enty[j-2],entx[j-2],enty[j-1]);                               line(entx[j-2],enty[j-2],entx[j-1],enty[j-2]);                               line(entx[j-2],enty[j-1],entx[j-1],enty[j-1]);                               line(entx[j-1],enty[j-2],entx[j-1],enty[j-1]);                               }                               break;                      case 4:                         /*circle*/                               if (m==0) break;                               if (t==1) lcdlin(4);                               else if (t==2)                               {  clean();                                  color=5;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                   t=0;}                               else                               {  if (j<2) break;                            circle(entx[j-2],enty[j-2],entx[j-1],enty[j-1]);}                               break;                        case 5:                        /*keyvalue*/                               if (t==1) lcdlin(5);                               else if (t==2)                               {  clean();                                  color=6;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                   t=0;}                               else { clean(); t=1; m=1; }                               break;                     case 6:                       /*moving*/                                             if (t==1) lcdlin(6);                               else if (t==2)                               {  clean();                                  color=7;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                  t=0;}                               else {  clean();                                       moving(fd1);  }                               break;                     case 7:                               if (m==0) break;                               if (t==1) lcdlin(7);                               else if (t==2)                               {  clean();                                  color=8;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                   t=0;}                               else {  clean(); }                               break;                     case 8:                               if (t==1) lcdlin(8);                               else if (t==2)                               {  clean();                                  color=9;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                  t=0;}                               else chinese1();                               break;                     case 9:                               if (t==1) lcdlin(9);                               else if (t==2)                               {  clean();                                  color=10;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                  t=0;}                               else                                {  m=1;                                  n++;                                  if (n==1)  clean();                                  else if (n>1) n=n-2;                                }                               break;                     case 11:                               if (t==1) lcdlin(11);                               else if (t==2)                               {  clean();                                  color=12;                                  a=320;                                  b=240;                                  rudder(a,b,color,n);                                  t=0;}                               else                                { t=2;                                   m=1;                                 clean();                                 lcd_fillrect(240,160,280,200,2);                                 lcd_fillrect(180,160,220,200,3);                                 lcd_fillrect(120,160,160,200,4);                                 lcd_fillrect(60,160,100,200,5);                                 lcd_fillrect(240,100,280,140,6);                                 lcd_fillrect(180,100,220,140,7);                                 lcd_fillrect(120,100,160,140,8);                                 lcd_fillrect(60,100,100,140,9);                                 lcd_fillrect(240,40,280,80,10);                                 lcd_fillrect(180,40,220,80,11);                                 lcd_fillrect(120,40,160,80,12);                                 lcd_fillrect(60,40,100,80,13);}                               break;                     case 16:                               menu(fd1);                               m=0;                               t=0;                               n=0;                               j=0;                               a=320;                               b=240;                               break;                                               }         }        close(fd);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -