1.11.2 规范脚本
好了,到这里我觉得我们不必再炫耀我们的精彩。因为我们还有点事情可以做。 我们的数据脚本还过于代码化,这不便于我们的阅读与理解,我们还可以让我们的图1.9-2中所示的代码变得更完美些。 有时候,完美的形式与完美的方法一样也是很重要的,因为这会给我们带来很大的便利。比如说,填表格往往比写文章要容易许多,不是吗?所以现在我们也要为我们的数据脚本画一个“表格”,以让我们的量产化编程更有章可循。 为数据脚本画表格,其实就是为数据脚本中的基本单元制定一个格式框架,这个格式框架就对应一个数据结构,数据脚本的所有属性,也就是这个数据结构的成员。现在我们需要首先为数据脚本建立一个基本的数据结构,其定义如图1.11-2。 // 脚本每一个成员的数据结构 typedef struct _script { unsignedchar d; // 端口值 unsignedint t; // 端口状态保持时间 } Script; 图1.11-2 脚本的基本单元结构
从上面的定义可以看出,这个基本单元的结构也就是C语言中的一个结构类型。有了这个基本单元的结构,我们就不再要考虑用几个不同的数组来实现数据脚本的描述,脚本完全就成了一个一维结构。一维的结构很显然无论从结构形式还是从控制逻辑的角度来看都是最理想的结构,而至于数据脚本的复杂性,则完全只是某一个基本单元的事情,与基本单元的个数并没有关系。对于一个基本单元的各个成员的相互关系,其实也被独立并简化为一种一维关系。这样,两个没有交叉的一维关系就类似于我们数学中的笛卡尔坐标系,独立出来的时候,两个一维轴相互独立,性质相同,彼此毫无瓜葛,而将它们正交成一个二维关系的时候,二者组合形成一个形形色色的二维世界,并成就了二维世界的多样性。 利用脚本的基本单元来描述脚本,正是一种二维表格的编制。现在我们只需要根据这个基本结构对我们所要播放的波形进行数据脚本的描述(如图1.11-3),很显然,这已经比原来要容易得多。 #define STAGES 16 Script code FourPluse[] = { {0,749}, {1,251}, {0,749}, {3,251}, {0,749}, {1,251}, {0,749}, {7,251}, {0,749}, {1,251}, {0,749}, {3,251}, {0,749}, {1,251}, {0,749}, {15,251} }; 图1.11-3 规范后的脚本内容
从图1.11-3中的形式我们知道,以后我们编制数据脚本,就如同填表了,这也就是我们所需要的那种量产式的、低复杂度的生产方式。
|