tag 标签: 嵌入式linux培训

相关博文
  • 热度 25
    2012-6-18 22:02
    1743 次阅读|
    1 个评论
     作者:征途中的人(转载,请注明作者,请尊重原创)   一、一位数组的初始化 1、在定义数组时对数组元素赋予初值 int a ={1,2,3}; 2、只给部分元素赋值 Int a ={1,2}; 3、在对数组全部元素赋初值,由于数组个数已经确定,因此可以不指定数组长度 int a ={1,2,3}; 或 int a ={0,0,0}; 或 Int a ={0};   二、字符数组的一般初始化 1、最容易理解的方式是在定义时候,逐个字符赋给数组中的各个元素,进行初始化 Char c ={‘a’,’b’,’c’}; 2、如果对在定义字符数组不初始化,则数组中各个元素的值是不可预料的。 字符个数大于数组长度则按语法错误处理。 Char c ={‘a’,’b’,’c’}; 字符个数小于数组长度则其余元素自动定为空字符。Char c ={‘a’,’b’,’c’}; 如下图:   C C C C a b c \0           3、如果字符个数与数组长度相同,在定义时可以省去数组长度,系统会自动根据数组字符个数确定数组长度。 Char c ={‘a’,’b’,’c’};  //长度为3 三、对字符串常量的一些认识 编译系统对字符串常量会自动加个’\0’作为结束标志。   用过以下语句输出一个字符串。 Printf(“how do you do?\n”);   在执行此语句时系统怎么知道应该输出哪里为止呢? 实际上,在内存中存放时,系统自动在最后一个字符’\n’的后面加个’\0’作为字符串结束标志。在执行printf函数时,每输出一个字符检查一次,看一个字符是否’\0’,遇到’\0’就停止输出。   四、用字符串常量使字符数组初始化 1、在定义字符数组的时候用字符串进行初始化 Char c ={“abc”}   需要说明的是:字符数组并不要求它的最后一个字符为’\0’,甚至可以不包含’\0’,像一下的写法是合法的 Char c ={“abc”}; 或 Char c ={‘a’,’b’,’c’};   是否要加’\0’,完全根据需要决定,但是由于系统对字符串常量自动加’\0’,因此为了使处理方法一致,便于测定字符串的实际长度,以及在程序中作为相应的处理。在字符处理上也会人为的加上一个’\0’.例如: Char c ={‘a’,’b’,’c’,’\0’}; 这样便于引用字符数组中的字符串。     char c ={“hello”}; 和char c ={“hello”};有什么区别呢 在字符串存储中最后都会自动加个一个结束符’\0’.所以存储5个字符需要6个空间。 所以char c ={“hello”};缺少结束符,但是调用c ,c ,c ,c ,c ,是可以使用的,但是使用strlen(c),strcpy()等函数就会出现错误,因为找不到结束标志。   char c ={“hello”};可以正常使用,因为有结束标志’\0’,c =’\0’;   2、可以部分赋值 Char c ={“abc”}; 前三个元素为a,b,c,第四个元素为’\0’,后两个元素为空字符   a b c \0 \0 \0   3、可以省略数组长度 Char c =”abc”  //数组长度为4 等价于 Char c ={‘a’,’b’,’c’};     【上海索漫科技】提供  
  • 热度 23
    2012-6-6 22:55
    1602 次阅读|
    0 个评论
    以设置timer0的中断IRQ为例: VICIntSelect =0x00;中断选择寄存器 VICVectCntl0=0x24;向量控制寄存器 VICVectAddr0=(Uint32)IRQ_Timer0;向量地址寄存器 VICIntEnable=0x00000010;中断使能寄存器   1、VICIntSelect   中断选择寄存器     中断选择寄存器总共有22个有效位,每个位代表一个中断源。 中断选择寄存器的中断源位号来至于中断源的编号,一个位号对应一个中断源编号。 每个位有两种状态,0和1,分别代表IRQ和FIRQ。 总结:一个16进制的位代表四个二进制的位 赋值: VICIntSelect=0x00000000;IRQ VICIntSelect=0xFFFFFFFF;FIRQ   2、VICVectCntl0 向量控制寄存器     向量控制寄存器,有6个有效位,0-4位代表中断源标号(可以代表0-31个数,实际中断源编号是0-21),5位代表 当是1时,IRQ使能,当是0时,FIRQ使能。   赋值方式:两种 宏定义:VICVectCntl0 = (第5位使能+中断源编号)= 二进制(15)(0-21)十进制=得出十六进制0x2x(x代表中断源编号) 直接赋值:VICVectCntl0 =0x24; 3、VICVectAddr0 向量地址寄存器           向量控制寄存器和向量地址寄存器是一对。   4、VICIntEnable 中断使能寄存器         中断使能寄存器,总共有22个位,每个位代表一个中断源。 中断使能寄存器位号来至于中断源的编号,每个位号对应一个中断源编号。 每个位有0和1两种状态,分别代表FIRQ使能和IRQ使能。   赋值:有两种方式   通过宏定义方式:VICIntEnble =(14);4为中断位号(或中断源编号) 直接赋值方式:VICIntEnable = 0x0000 0001; 总结:中断选择寄存器VICIntSelect 和中断使能寄存器VICIntEnable 赋值方式相同。            
  • 热度 29
    2011-12-12 21:39
    1754 次阅读|
    2 个评论
    作者:下家山(转载,请注明) 十:3行3列特殊情况     个别灯很小                               识别结果 颜色很弱的情况    识别结果   十一:不规则情况                      待识别图像 识别结果    待识别图像 识别结果   十二: 无法识别的情况 待识别图片    识别结果       这种情况识别成了1行1列。 ========================================== 此原理以成功应用的路由器的生产线上!只需用光纤把led灯导到摄像头前面板,然后就可以捕捉到led图像阵列! 转载:请注明,作者,下家山   请尊重原创!