PSoC3 FirstTouc Starter Kit 例子源代码之Proximity Sensor简单分析
本帖最后由 wangku001wei 于 2012-9-24 20:05 编辑注意 仅仅是简单分析哦
组件的原理及使用还在研究中
首先看原理图可见接近传感器也是使用了CapSense组件
注意 由于我们在配置对话框的General选项卡中选择了 IDAC disable,use external Rb
在具体引脚配置中 出现了sCmod 和 sRb0
在Proximity Sensors 中添加了Sensor Name (Proximity)
在具体引脚配置中 出现了PROX_Promimity_0
LED灯的配置和之前的Proximity Sensor基本相同只是这次是用8个寄存器各自独立的控制一个LED灯PdPort_LSB 对应P2口的P2控制dPort_MSB 对应P4口的P4控制同样的,反向是因为电路设计为低电平点亮LED,高电平熄灭LED
代码分析/******************************************************************************************** 主函数的功能:* 1: 关闭所有的LED* 2: 启动电容感应组件* 3: 查看接近传感器并报告信号强度* 4: 根据手指接近传感器的程度点亮对应数量的LED灯 /******************************************************************************************//* 存储位置信号值的数组*/extern uint8 CapSenseProximity_CSHL_SlotSignal[(CapSenseProximity_TOTAL_SCANSLOT_COUNT - CapSenseProximity_TOTAL_GENERIC_SCANSLOT_COUNT)];
void main(){ uint8 Sensitivity = 15; uint8 tempVar = 0; uint8 LedData = 0; uint8 ProximitySignal = 0; uint16 i = 0;
/* 使能全局中断 */ CYGlobalIntEnable; /* 关闭LED灯 */ LED_Control_Reg_Write(LedData); /* 启动并且初始化电容接近感应传感器 */ CapSenseProximity_Start(); /* 初始化基线 */ CapSenseProximity_CSHL_InitializeSlotBaseline(CapSenseProximity_CSHL_PROX_PROXIMITY);
while(1) { /* 在读取信号之前进行短暂的延时 以便降低LED的更新速度 */ for(i = 0; i <= 10000; i++); /* 扫描并更新基线 */ CapSenseProximity_CSD_ScanSlot(CapSenseProximity_CSHL_PROX_PROXIMITY); CapSenseProximity_CSHL_UpdateSlotBaseline(CapSenseProximity_CSHL_PROX_PROXIMITY);
/* 判断传感器是否激活 */ LedData=0; if(CapSenseProximity_CSHL_CheckIsSlotActive(CapSenseProximity_CSHL_PROX_PROXIMITY)) { /* 读取当前传感器值 */ ProximitySignal = (uint8)CapSenseProximity_CSHL_SlotSignal; /* 根据信号值计算需要点亮的LED */ tempVar = ProximitySignal / Sensitivity; for(i = 1 ; i <= tempVar ; i++) { LedData = LedData << 1; LedData = LedData | 1; } } /* 更新LED灯状态*/ LED_Control_Reg_Write(LedData); }}
CapSense组件的使用 可参考帮助文档 在配置对话框框中单击Data Sheet即可出现一个PDF
由于只是针对代码的简单分析 对组件的使用还不是很了解接下来准备阅读ADC 和 CapSense 组件的说明文档 wangku001wei 发表于 2012-9-24 21:52 static/image/common/back.gif
是的 越近 亮的灯越多 可以看我之前上传的视频
哦,cypress在触摸感应方面还是有一手啊 小鸟愤怒 发表于 2012-9-24 21:48 static/image/common/back.gif
接近感应?这程序结果是什么,接近的话LED亮么?
是的 越近 亮的灯越多 可以看我之前上传的视频 接近感应?这程序结果是什么,接近的话LED亮么?:)
页:
[1]