sky-Hawk where 发表于 2012-9-24 09:34:18

PSoC® 3 FirstTouch™ Starter Kit 例子源代码分析之Bubble Level Emulator

本帖最后由 wangku001wei 于 2012-9-24 09:33 编辑

先找了个相对比较简单的代码进行分析 ;P
首先看原理图
dPort_AcclControl 控制加速度传感器的 ST/MODEMODEACC_ENABLE(注意先后顺序) 引脚PdPort_LSB 对应P2口的P2控制dPort_MSB 对应P4口的P4控制注意 PdPort_LSB 的最高位和 dPort_MSB的最低位都是由同一个控制寄存器 LED_Control_Reg 第3位 LED_Control_Reg 经反向后输出 是为了实现在水平位置时候将最中间的两个LED灯同时点亮之所以反向是因为电路设计为低电平点亮LED,高电平熄灭LED

代码分析void main(){    int16 BubbleValue=0;
    /* 使能全局中断 */    CYGlobalIntEnable;
    /* 关闭所有的LED灯 on PORT2(pin 0-3) and PORT4 pin(0-3) */    LED_Control_Reg_Write(0);
    /* 设置加速度传感器的控制引脚 注1*/    dPort_AcclControl_Write(ACCL_SET_CONTROL);
    /* 开始AD转换 */    ADC_Start();    ADC_StartConvert();
    while(1)    {      /* 等待AD转换完成 */      ADC_IsEndConversion(ADC_WAIT_FOR_RESULT);
      /* 读取AD转换的结果*/      BubbleValue = ADC_GetResult16();      /* 对转换结果值进行处理 注2*/      BubbleValue = ((BubbleValue - G_MEAN_VALUE)>>GAIN);
       /* 将处理结果值加3以便将LED的显示偏移到中间 */      BubbleValue+=3;
      /* 对测量的加速度结果超过限制阈值的处理 */      if(BubbleValue < 0)      {            BubbleValue = 0;      }      if(BubbleValue > 6)      {         BubbleValue = 6;      }
      /* 控制LED灯 */      /* 第3位控制了引脚3 4 以便实现当板子水平是很中间的两个LED点亮 */      LED_Control_Reg_Write(1<<BubbleValue);    }}

注1Bubble.h 文件中宏定义了#define ACCL_SET_CONTROL    ((uint8) 0x06)对应加速度传感器的引脚ENABLE=1, MODE=1, ST/MODE=LOW(可查找传感器的使用说明)
注2减去 3300 的意思在 Bubble.h 文件中有提到加速度传感器水平位置时候测量到的电压约为1.65V,对应12位ADC转换结果的数字为3300,因此减去3300得到实际的倾斜程度除以 GAIN(7)是由于采用7位的寄存器控制了8个LED灯,为了将不同程度的倾斜分成7段
关于ADC转换组件的使用 可参考帮助文档 在配置对话框框中
单击Data Sheet即可出现一个PDF

sky-Hawk where 发表于 2012-9-24 23:59:26

还是要赞一记

sky-Hawk where 发表于 2012-9-24 22:24:55

wangku001wei 发表于 2012-9-24 21:55 static/image/common/back.gif
木有啊,第一次接触只好先拿帮助文档 Tutorial Guide 之类的先上手 总觉得少了点什么   ...

哦…………

sky-Hawk where 发表于 2012-9-24 21:55:10

醉清风 发表于 2012-9-24 21:52 static/image/common/back.gif
LZ 以前学过么??

木有啊,第一次接触只好先拿帮助文档 Tutorial Guide 之类的先上手 总觉得少了点什么

sky-Hawk where 发表于 2012-9-24 21:52:58

LZ 以前学过么??

sky-Hawk where 发表于 2012-9-24 10:13:24

:lol很不错啊...哈哈哈顶一个

sky-Hawk where 发表于 2012-9-24 09:50:39

wangku001wei 发表于 2012-9-24 09:45 static/image/common/back.gif
争取两天一个吧

相当给力!!!:handshake到时候把楼主的教程整理一下,给学习者作参考~

sky-Hawk where 发表于 2012-9-24 09:45:00

xinxincaijq 发表于 2012-9-24 09:39 static/image/common/back.gif
期待楼主的连载~~~

争取两天一个吧

sky-Hawk where 发表于 2012-9-24 09:39:13

期待楼主的连载~~~:lol

sky-Hawk where 发表于 2012-9-24 09:35:49

抢个沙发顶一个~~~楼主很给力!
页: [1]
查看完整版本: PSoC® 3 FirstTouch™ Starter Kit 例子源代码分析之Bubble Level Emulator

Baidu
map