自动化技术

举一个例子:以前的门禁是横版本的,现在做出竖版的,如图。

 

那么软件获得按键的影射关系需要修改一下。

		
		 现在的代码    横的               自己想一想竖的
		case 0x10:key = KEY_ENT; break;-----KEY_7
		case 0x100: key = KEY_0; break;  KEY_4
		case 0x08: key = KEY_DEL; break;  KEY_1
		case 0x20: key = KEY_9; break;   KEY_8
		case 0x200: key = KEY_8; break;  KEY_5
		case 0x4000: key = KEY_7; break; KEY_2
		case 0x40: key = KEY_6; break;  KEY_9
		case 0x400: key = KEY_5; break;  KEY_6
		case 0x2000: key = KEY_4; break;    KEY_3
		case 0x80: key = KEY_3; break;  KEY_DEL
		case 0x800: key =KEY_2; break;     KEY_0
		case 0x1000: key = KEY_1; break;  ---KEY_ENT
		
		
定义一个变量吧:TOUCHV 1是树立的 0是横的
				
		                            横的  竖的
		case 0x10:   key = TOUCHV? KEY_7:KEY_ENT; break;
		case 0x100:  key = TOUCHV? KEY_4:KEY_0;   break;  
		case 0x08:   key = TOUCHV? KEY_1:KEY_DEL; break; 
		case 0x20:   key = TOUCHV? KEY_8:KEY_9;   break;  
		case 0x200:  key = TOUCHV? KEY_5:KEY_8;   break;  
		case 0x4000: key = TOUCHV? KEY_2:KEY_7;   break;
		case 0x40:   key = TOUCHV? KEY_9:KEY_6;   break;  
		case 0x400:  key = TOUCHV? KEY_6:KEY_5;   break;  
		case 0x2000: key = TOUCHV? KEY_3:KEY_4;   break;   
		case 0x80:   key = TOUCHV? KEY_DEL:KEY_3; break;  
		case 0x800:  key = TOUCHV? KEY_0: KEY_2;  break;    
		case 0x1000: key = TOUCHV? KEY_ENT:KEY_1; break;  

现在问题:我们新来了一个变量。如何设计呢?

埃士的做法是:软件做宏开关,不同的宏开关注定走了不同的路子。同一份工程,需要依据不同的产品修改宏开关。

特斯联的做法是:软件不做宏开关,这个变量的值通过硬件去获得,当然埃士也有啦,拨码开关,找一个管脚,ON的是1,OFF是0,特斯联的高级在于做到了ADC,不是0 1了 通过ADC判断模块。上电跑起来的时候先去确定这个TOUCHV

现在我该怎么做呢?

开会说了一下,大家非常喜欢宏开关。

 

操作:

1修改代码

2增加变量

http://www.stmcu.org/module/forum/thread-616810-1-1.html

/*
 *                           f8wConfig.cfg
 *
 *  Compiler command-line options used to define a terminus device.
 *  To move an option from here to the project file, comment out or delete the
 *  option from this file and enter it into the "Define Symbols" box under the
 *  Preprocessor tab of the C/C++ Compiler Project Options. New user defined
 *  options may be added to this file, as necessary.
 *
 *  Each macro is prefixed with '-D'. The entries are to be constructed as if
 *  they are to be on the compiler command line invocation (which they are).
 *
 *  NOTE: 设备属性及固定配置选项
 *        
 */


/* 
 *  全局串口调试开关  
 */
-DDEBUG_ENABLE=1


-DTOUCHV=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值