★想用STL写一个类似TI-S7 Library FC84“ATT”功能的程序★
刘玉蓉
发布于2014-12-01 17:29
186
0
标签:
举个例子,DB1中我开发了100个WORD类型数据,初始值为0。当我I0.0按下时我想在DB1.DBW0里赋值1,I0.1按下时在DB1.DBW2里赋值2,I0.2按下时在DB1.DBW4里赋值3……以此类推,I0.0、I0.1、I0.2……是点动按钮要求只能保持一个扫描周期(要用到上升沿指令),如果按了I0.0两次就要求DB1.DBW0和DB1.DBW2都为1,以此类推。输入点有100个,请问这样的程序该怎么写?输入点按下的次数是小于等于100,因为DB区只开发了100个字!
佳答案
你可以做一个LOOP,检查100个bit的位状态:
当检测到位1的时候执行,根据检测到的位算出应该赋值为几,赋值前先检查该地址了是否已经存放了该数据,如果存放了就地址偏移1个字,计数加1,这个程序应该挺简单的,哈哈~~~~
1.比如现在是I3.5,应该输入3*8+5+1=30,偏移的地址应该是(3*8+5)*2 WORD
2.怎么检查是第1次还是第N次输入,可以给每个点的上升沿都计数都不难。建一个int的数组,还是变址寻址。根据每个点记录的次数,可以算出要偏移多少个word重复写。
你没说清楚是否可以覆盖数据:比如I0.0输入了两下,那么I0.1输入的时候数据是否存在DB1.DBW2.