Facebook Sharer
选择您要替换的背景颜色:
【农历新年】背景图片:
个性化设定
 注册  找回密码
查看: 1011|回复: 5
打印 上一主题 下一主题

【求助】菜鸟C LANGUAGE 问题。

[复制链接]

17

主题

2

好友

129

积分

高级会员

Rank: 3Rank: 3Rank: 3

跳转到指定楼层
1#
发表于 2011-10-24 11:38 PM |只看该作者 |倒序浏览
请问谁可以叫我用ARRAY和FOR LOOP来SIMPLIFY 这CODE啊?
因为太长了啊
谢谢。
  1. f((input(pin_a0)==1) && (input(pin_a1)==1) && (input(pin_a2)==1))
  2.                         {
  3.                                 delay_ms(1000);
  4.                                 lcd_putc("\fPL avialable:0");
  5.                        
  6.                                                 }      

  7.                 else if((input(pin_a0)==0) && (input(pin_a1)==0) && (input(pin_a2)==0))
  8.                                 {
  9.                                 delay_ms(1000);
  10.                                 lcd_putc("\fPL available:3");
  11.                                 delay_ms(2000);
  12.                                 lcd_putc("\fPL1-empty");
  13.                                 lcd_putc("\nPL2-empty");
  14.                                 delay_ms(1000);
  15.                                 lcd_putc("\fPL3-empty");
  16.                                 delay_ms(1000);
  17.                        
  18.                                                 }      


  19.       

  20.                  else        if((input(pin_a0)==1) || (input(pin_a1)==1) || (input(pin_a2)==1))
  21.                 {
  22.                        
  23.                                 lcd_putc("\nPL available:2/3");
  24.                               
  25.                        
  26.                                         }      
  27.                



  28.                         else if((input(pin_a0)==0) && (input(pin_a1)==1) && (input(pin_a2)==0))
  29.                 {
  30.                        
  31.                                 lcd_putc("\nPL available:2/3");
  32.                               
  33.                        
  34.                                         }      
  35.                        
  36.                                 else if((input(pin_a0)==0) && (input(pin_a1)==1) && (input(pin_a2)==1))
  37.                 {
  38.                        
  39.                                 lcd_putc("\nPL available:1/3");
  40.                               
  41.                        
  42.                                         }      
  43.                        
  44.                                 else if((input(pin_a0)==1) && (input(pin_a1)==0) && (input(pin_a2)==0))
  45.                 {
  46.                        
  47.                                 lcd_putc("\nPL available:2/3");
  48.                               
  49.                        
  50.                                         }      


  51.                                 else if((input(pin_a0)==1) && (input(pin_a1)==0) && (input(pin_a2)==1))
  52.                 {
  53.                        
  54.                                 lcd_putc("\nPL available:1/3");
  55.                               
  56.                        
  57.                                         }      


  58.                                 else if((input(pin_a0)==1) && (input(pin_a1)==1) && (input(pin_a2)==0))
  59.                 {
  60.                        
  61.                                 lcd_putc("\nPL available:1/3");
  62.                               
  63.                        
  64.                                         }   
复制代码




收藏收藏0

相关帖子

6

主题

0

好友

397

积分

超级会员

Rank: 5Rank: 5Rank: 5Rank: 5Rank: 5

2#
发表于 2011-10-25 08:04 AM |只看该作者
一开始把3个input 加起来
然后比较那个总合
0:
delay_ms(1000);
lcd_putc("\fPL available:3");
...
...
delay_ms(1000);

1:
lcd_putc("\nPL available:2/3");

2:
lcd_putc("\nPL available:1/3");

3:
delay_ms(1000);
lcd_putc("\fPL avialable:0");

应该就可以缩短一点


回复

使用道具 举报

31

主题

0

好友

1228

积分

黄金长老

Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8Rank: 8

3#
发表于 2011-10-25 09:32 AM |只看该作者
本帖最后由 ~Zero 于 2011-10-25 09:33 AM 编辑

请问谁可以叫我用 BACKSPACE, SPACE, 和 TAB 来 SIMPLIFY 这 CODE 啊?
因为太乱了啊
谢谢。


回复

使用道具 举报

17

主题

2

好友

129

积分

高级会员

Rank: 3Rank: 3Rank: 3

4#
发表于 2011-10-25 09:55 AM |只看该作者
回复 2# weeming21
我改成这样了,可是有问题啊。谢谢。
  1. counter = (input(pin_a0) + input(pin_a1) + input(pin_a2));
  2.             if (counter=0)
  3.                         {
  4.                                         lcd_putc("PL available:3");
  5.                                         delay_ms(1000);
  6.                                         lcd_putc("\fPL available:3");
  7.                                         delay_ms(2000);
  8.                                         lcd_putc("\fPL1-empty");
  9.                                         lcd_putc("\nPL2-empty");
  10.                                         delay_ms(1000);
  11.                                         lcd_putc("\fPL3-empty");
  12.                                         delay_ms(1000);
  13.                        
  14.                                                                 }
  15.         else if (counter=1)
  16.                         {
  17.                                 lcd_putc("\fPL available:2/3");
  18.                                                                 }                               

  19.         else if (counter=2)
  20.                         {
  21.                                        
  22.                                 lcd_putc("\fPL available:1/3");       
  23.                                                                 }                                                                               
  24.         else if (counter=3)
  25.                         {
  26.                                 lcd_putc("\fPL avialable:0");
  27.                                 printf("\nParking Lot available:0");
  28.                                                
  29.                                                                 }
复制代码


回复

使用道具 举报

7

主题

1

好友

5108

积分

一流名嘴

Rank: 12Rank: 12Rank: 12

5#
发表于 2011-10-25 07:09 PM |只看该作者
回复  weeming21
我改成这样了,可是有问题啊。谢谢。
  1. counter = (input(pin_a0) + input(pin_a1) + input(pin_a2));
  2.             if (counter=0)
  3.                         {
  4.                                         lcd_putc("PL available:3");
  5.                                         delay_ms(1000);
  6.                                         lcd_putc("\fPL available:3");
  7.                                         delay_ms(2000);
  8.                                         lcd_putc("\fPL1-empty");
  9.                                         lcd_putc("\nPL2-empty");
  10.                                         delay_ms(1000);
  11.                                         lcd_putc("\fPL3-empty");
  12.                                         delay_ms(1000);
  13.                         
  14.                                                                 }
  15.         else if (counter=1)
  16.                         {
  17.                                 lcd_putc("\fPL available:2/3");
  18.                                                                 }                                

  19.         else if (counter=2)
  20.                         {
  21.                                        
  22.                                 lcd_putc("\fPL available:1/3");        
  23.                                                                 }                                                                                
  24.         else if (counter=3)
  25.                         {
  26.                                 lcd_putc("\fPL avialable:0");
  27.                                 printf("\nParking Lot available:0");
  28.                                                 
  29.                                                                 }
复制代码

pikachew 发表于 2011-10-25 09:55 AM



1. if(counter=0) 基础錯誤
2. 把錯誤訊息貼出來,如果不是明显錯誤没人會要去問米找你的錯誤是甚麽


回复

使用道具 举报

0

主题

0

好友

47

积分

初级会员

Rank: 1

6#
发表于 2011-11-17 02:15 AM |只看该作者
本帖最后由 sunyata 于 2011-11-17 02:26 AM 编辑

试试看这个。

  1. #define        PIN_A0        1
  2. #define        PIN_A1        2
  3. #define        PIN_A2        4


  4. int inputbuf=0;

  5. if (input(pin_a0))
  6.         inputbuf|=PIN_A0;
  7. if (input(pin_a1))
  8.         inputbuf|=PIN_A1;
  9. if (input(pin_a2))
  10.         inputbuf|=PIN_A2;

  11. switch (inputbuf)
  12. {
  13.         case 0:
  14.                 delay_ms(1000);
  15.                 lcd_putc("\fPL available:3");
  16.                 delay_ms(2000);
  17.                 lcd_putc("\fPL1-empty");
  18.                 lcd_putc("\nPL2-empty");
  19.                 delay_ms(1000);
  20.                 lcd_putc("\fPL3-empty");
  21.                 delay_ms(1000);
  22.         break;
  23.        
  24.         case PIN_A0:
  25.         case PIN_A1:
  26.         case PIN_A2:
  27.                 lcd_putc("\nPL available:2/3");
  28.         break;

  29.         case PIN_A0 + PIN_A1:
  30.         case PIN_A1 + PIN_A2:
  31.         case PIN_A0 + PIN_A2:
  32.                 lcd_putc("\nPL available:1/3");
  33.         break;

  34.         case PIN_A0 + PIN_A1 + PIN_A2:
  35.                 delay_ms(1000);
  36.                 lcd_putc("\fPL avialable:0");
  37.         break;
  38. }
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

JBTALKS.CC |联系我们 |隐私政策 |Share

GMT+8, 2024-11-25 04:51 PM , Processed in 0.127211 second(s), 27 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

Ultra High-performance Dedicated Server powered by iCore Technology Sdn. Bhd.
Domain Registration | Web Hosting | Email Hosting | Forum Hosting | ECShop Hosting | Dedicated Server | Colocation Services
本论坛言论纯属发表者个人意见,与本论坛立场无关
Copyright © 2003-2012 JBTALKS.CC All Rights Reserved
合作联盟网站:
JBTALKS 马来西亚中文论坛 | JBTALKS我的空间 | ICORE TECHNOLOGY SDN. BHD.
回顶部