科技

应广单片机MINI

| 点击:

【www.fsgl168.com--科技】

应广科技的MINI-C语法结构,是一种界于标准C和汇编的一种语言,对于小资源的MCU来说,该语法非常精简实用。

MINI-C中的指针只有一种类型,就是指向字节变量的。定义方式是

word   point1;//其中word是MINI-C中的一个关键字,用来定义一个16位的变量,因指针可以指向ROM或者RAM,是用16位变量来定义的。

这里先介绍指针对RAM的访问于操作。

当定义完指针变量后,用*point1,就可以访问指针所指RAM中的内容了。

而point1本身的内容则是指向内部RAM地址的。

已经有几次被用户咨询,MINI-C怎样去访问一个数组,或者直接说不支持。为了方便大家使用,我简单介绍一下。

因为MINI-C本身的数组是不能带变量下标访问的,这就和标准的C区别很大了,习惯于标准C的结构,一下子

不知道该如何去访问了。我和大家稍微介绍下,用MINI-C怎么样去访问一个简单的数组。

比如,我定义一个16位的数组;

word word_g[10];

然后对它进行初始化:

void word_init(void)

{

word_g[0] =5;   //请留意目前的版本都只能支持固定的下标,

word_g[1] = 2;

word_g[2] =3;   // 用word_g[i] =xx,i是变量,是不支持的。

word_g[3] = 17;

word_g[4] = 1;

word_g[5] = 6;

word_g[6] = 20;

word_g[7] = 4;

word_g[8] = 0;

word_g[9] = 10;

}

然后我需要求数组中的最小值:

void get_word_min(void) //取一个数组中的最小值

{

word point1,point2;

word word_temp;

byte i,j;        //类似标准C中的下标

i = 0;

word_min = word_g[0];

while(i < 10) //10是数组的中数的个数,多求了一次,无所谓

{

j = i << 1;

point1 = word_g;//指针始终指向数组首地址

point1 +=j;        //计算偏移字节

word_temp$0 = *point1;//求16位数中的低8位

point1++;                      //指针再加1,指向下一个字节

word_temp$1 = *point1;//求16位数中的高8位,当然单字节的数组就更简单了

if(word_min > word_temp)//比较所取数于其他数,大于则交换

{

word_min= word_temp;

}

i++;

}

}

仔细看看吧,不理解就用仿真器调试一下。

本文来源:http://www.fsgl168.com/keji/108549/