摘要: 冒泡排序法:private static void BulleSort(){ int i, j; for (i = 1; i = i; j--) { if (data[j] 0 && temp k) { j--; } int temp = k; k = array[j]; array[j] = temp; ... 阅读全文
posted @ 2013-05-28 08:58 zpehome 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍LIS3DH的运动检测功能(Motion detection),一旦两次加速度值的差值超过了设置阈值,相应的引脚就会产生中断。LIS3DH接口非常简单,四线SPI接口。LIS3DH上电需要等待大约5ms才能对其寄存器进行操作,否则可能达不到想要的结果。寄存器配置如下:spi_lis3dh_writebyte(0x3f,0x20);//CTRL_REG1 设置采样频率为25Hz,低功耗模式,开启x,y,z轴检测spi_lis3dh_writebyte(0x09,0x21);//CTRL_REG2 正常模式,数据从内部滤波器到输出寄存器,高通滤波器使能到中断1spi_lis3dh_wr 阅读全文
posted @ 2013-05-08 23:42 zpehome 阅读(6201) 评论(0) 推荐(1) 编辑
摘要: DMA(Direct Memory Access,直接内存访问)是一种不经过CPU而直接从内存存取数据的数据交换模式。在需要进行大量数据交换的场合,用好DMA,可以大大提高系统的性能,因为DMA操作几乎不占用CPU资源。由于是用DMA的方式,因此在播放的过程中不占用系统资源,我们可以很容易的实现声音的各种操作而丝毫不影响播放的效果,如音量的提高和降低、静音、暂停等。定义变量:static int remainder;static char mute;static char volume;中断函数,当DMA传送完成时打印Success。static void __irq PlayDMA2Done 阅读全文
posted @ 2013-05-05 22:18 zpehome 阅读(406) 评论(0) 推荐(0) 编辑
摘要: s3c2440一共有5个引脚用于IIS:IISDO、IISDI、IISSCLK、IISLRCK和CDCLK。前两个引脚用于数字音频信号的输出和输入,另外三个引脚都与音频信号的频率有关,可见要用好IIS,就要把信号频率设置正确。IISSCLK为串行时钟,每一个时钟信号传送一位音频信号,因此IISSCLK的频率=声道数×采样频率×采样位数,如采样频率fs为44.1kHz,采样的位数为16位,声道数2个(左、右两个声道),则IISSCLK的频率=32fs=1411.2kHz。IISLRCK为帧时钟,用于切换左、右声道,如IISLRCK为高电平表示正在传输的是左声道数据,为低电平表 阅读全文
posted @ 2013-05-02 22:48 zpehome 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 关于malloc的理解:#include #include void getmemory(char *p){ p=(char *) malloc(100); strcpy(p,"hello world");}int main( ){ char *str=NULL; getmemory(str... 阅读全文
posted @ 2013-04-30 19:57 zpehome 阅读(868) 评论(0) 推荐(0) 编辑
摘要: 大端:大端格式是低地址处存储的是字数据的高字节,高地址处存储字节数据的低字节小端:小端格式是低地址处存的是字数据的低字节,高地址存放的是字数据的高字节STM32是小端格式。如果将一个32位的整数0x12345678存放到一个整型变量(int)中,这个整型变量采用大端或者小端模式在内存中的存储由下表所示。地址偏移大端模式小端模式0x0012780x0134560x0256340x037812 阅读全文
posted @ 2013-04-08 22:02 zpehome 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 结构体与结构体之间的赋值,在标准的ANSI C语言里是不允许的。Keil也好,IAR也好,AVRstudio,Vc++等等的这些个IDE环境,都是基于ANSI C语言的。所不同的是,它们在C语言的基础上做了扩展,比如说 Keil C51,就扩展了 bit 这种数据类型,Avrstudio就扩展 二进制数据表示方法 "0b",VC++扩展了结构体内允许带有函数变量,IAR则扩展了结构体相互赋值,Keil没有扩展结构体相互赋值这个功能。 阅读全文
posted @ 2013-04-08 22:02 zpehome 阅读(1029) 评论(0) 推荐(0) 编辑
摘要: 不含位域:1) 结构体变量的首地址能够被其最宽基本类型成员的大小所整除;2) 结构体每个成员相对于结构体首地址的偏移量(offset)都是成员大小的整数倍,如有需要编译器会在成员之间加上填充字节(internal padding);3) 结构体的总大小为结构体最宽基本类型成员大小的整数倍,如有需要编译器会在最末一个成员之后加上填充字节(trailing padding)。含位域:1) 如果相邻位域字段的类型相同,且其位宽之和小于类型的sizeof大小,则后面的字段将紧邻前一个字段存储,直到不能容纳为止;2) 如果相邻位域字段的类型相同,但其位宽之和大于类型的sizeof大小,则后面的字段将从新 阅读全文
posted @ 2013-04-06 21:53 zpehome 阅读(401) 评论(0) 推荐(0) 编辑
摘要: 设置PB0输出PMW波,驱动蜂鸣器发声:void Buzzer_Freq_Set( U32 freq ){ rGPBCON &= ~3; //set GPB0 as tout0, pwm output rGPBCON |= 2; rTCFG0 &= ~0xff; //prescaler = 15+1 timer input clock frequency=PCLK/{prescaler value+1}/{divider value} rTCFG0 |= 15; rTCFG1 &= ~0... 阅读全文
posted @ 2013-03-28 23:26 zpehome 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 利用DataSet:创建基于服务的数据库文件(.mdf),在此数据库下创建表,创建DataSet数据集文件(.xsd),将创建好的表拖到DataSet数据级中。如下图所示:这样可以很容易对表进行操作了。获取数据库中的数据T_LableIDTableAdapter adapter = new T_LableIDTableAdapter ();table = adapter.GetData();//得到表中的数据DataTable dv1 = new DataView(table.DefaultView.ToTable(),"SourceOrTarget 'Target' 阅读全文
posted @ 2013-03-28 22:32 zpehome 阅读(336) 评论(0) 推荐(0) 编辑