我的PSoC学习(三)(PSoC Creator 2.0+win7+CY8C38):Capsense滑条与温控系统PSoC编程需要注意的点

对于Capsense滑条控制灯的亮度,看懂了第五个例子之后,直接改,参考这里的理论知识,http://www.bubuko.com/infodetail-762337.html,就能大概知道滑条的工作原理,不过用处不大,关键的设置是将tuning method改为自动Auto(SmartSense),然后在scan order里面可以选择sensitivity,默认是2,最大能是100(难怪一开始这么不灵敏),sensitivity调大一点,差不多30,滑条就非常灵敏了。

而对于温控系统,使用Capsense的时候要注意    CapSense_Start();    CapSense_InitializeAllBaselines();    CapSense_ScanEnabledWidgets();这三句话要在while循环前面写,如果之间还夹了其他的比如LCD或者AD转换,滑条就不工作了。具体的原因再看看吧,然后关于变量的问题,全局变量不能用,总是改不了它的值,只能用宏定义和常量,变量最好还是写在main函数里面。另外声明变量只能在main函数最开始。拷元件的时候也要非常注意,此时若有重复,元件名会自动改,代码也就要改,而且最最关键的是有时候整条代码需要你删了重写一遍,不然傻编译器一直给你报错。就比如我拷了第一个例子里面的PWM过来控制制冷片,函数名都改好了,但是就是编译不通过,编译器认定了没改好,因此删了重写,或者重启一遍应该就能解决这个问题。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
void main() { // initialization WORD slidepos; // EzI2Cs initialization EzI2Cs_SetRamBuffer(sizeof(MyI2C_Regs), sizeof(MyI2C_Regs), (BYTE *) &MyI2C_Regs); EzI2Cs_Start(); // Turn on I2C EzI2Cs_SetAddr(5); // Change address to 5 M8C_EnableGInt; // capsense initialization CSD_Start(); CSD_InitializeBaselines() ; CSD_SetDefaultFingerThresholds() ; // LCD initialization LCD_Start(); LCD_Position(0,0); LCD_PrCString("Button:FF"); LCD_Position(1,0); LCD_PrCString("Slider:00"); while (1) { CSD_ScanAllSensors(); //scan all sensors in array (buttons and sliders) CSD_UpdateAllBaselines(); //Update all baseline levels; //detect if any sensor is pressed if(CSD_bIsAnySensorActive()){ // Add user code here to proceed the sensor touching if(CSD_baSnsOnMask[0]&0x01) { LCD_Position(0,0); LCD_PrCString("Button:0 "); } else if(CSD_baSnsOnMask[0]&0x02) { LCD_Position(0,0); LCD_PrCString("Button:1 "); } else if(CSD_baSnsOnMask[0]&0x04) { LCD_Position(0,0); LCD_PrCString("Button:2 "); } else if(CSD_baSnsOnMask[0]&0x08) { LCD_Position(0,0); LCD_PrCString("Button:3 "); } else if(CSD_baSnsOnMask[0]&0x10) { LCD_Position(0,0); LCD_PrCString("Button:4 "); } else if(CSD_baSnsOnMask[0]&0x20) { LCD_Position(0,0); LCD_PrCString("Button:5 "); } else if(CSD_baSnsOnMask[0]&0x40) { LCD_Position(0,0); LCD_PrCString("Button:6 "); } slidepos=CSD_wGetCentroidPos(1); if(slidepos!=0xffff) { // if((slidepos==0x21)&&(CSD_waSnsDiff[11]<32)&&(CSD_waSnsDiff[13]<32)) // slidepos=0x63; LCD_Position(1,7); LCD_PrHexByte(slidepos&0xff); } } else { LCD_Position(0,0); LCD_PrCString("Button:FF"); } // internal variable output for tuning MyI2C_Regs.rawcount=CSD_waSnsResult[9]; MyI2C_Regs.baseline=CSD_waSnsBaseline[9]; MyI2C_Regs.diff=CSD_waSnsDiff[9]; } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值