8875|0

288

帖子

0

TA的资源

一粒金砂(高级)

楼主
 

【CY8CKIT-149 PSoC 4100S测评】+移植程序代码 [复制链接]

本帖最后由 yangjiaxu 于 2018-12-24 00:26 编辑

今天早上想要将串口通信移植到电容触摸按键上,但是失败了,在这里想求助一下会玩儿的兄弟。
就是我按照说明是修改了这两处和在主函数上添加了串口打印的代码,但是没有输出出来。




  1. int main()
  2. {        
  3.     /* Start the SW_Tx_UART Component */
  4. [color=#ff0000]    [b]SW_Tx_UART_Start();[/b][/color]
  5.     #if !ENABLE_TUNER
  6.         /*Used as loop counter and widget ID*/
  7.         uint8 widgetID = 0;
  8.         
  9.         /*Contains the buttons status, one bit per button
  10.           bit0= BTN0 status, bit1 = BTN1 status, bit2 = BTN2 status*/
  11.         uint8 buttonStatus = 0;   
  12.     #endif
  13.         
  14.     /* Variable to hold the current device state
  15.     *  State machine starts with Sensor_Scan state after power-up
  16.     */
  17.     DEVICE_STATE currentState = SENSOR_SCAN;  
  18.            
  19.      /* Enable global interrupts. */
  20.     CyGlobalIntEnable;

  21.     /* Start EZI2C block */
  22.     EZI2C_Start();
  23.    /* Start CapSense block */
  24.     CapSense_Start();

  25.      /* Start the TCPWM components, TCPWM1 generates PWM signal of frequency of 100 Hz
  26.        TCPWM2 generates PWM signal of frequency of 101 Hz*/
  27.     TCPWM_1_Start();
  28.     TCPWM_2_Start();

  29.     /* Start the SmartIO component, the two PWM signals are XORed to get the
  30.         LED breathing effect of 1 Hz*/
  31.     SmartIO_Start();      
  32.   
  33.     #if ENABLE_TUNER
  34.         /* Set up I2C communication data buffer with CapSense data structure
  35.         to be exposed to I2C master on a primary slave address request
  36.         */
  37.         EZI2C_EzI2CSetBuffer1(sizeof(CapSense_dsRam),\
  38.         sizeof(CapSense_dsRam),(uint8 *)&CapSense_dsRam);
  39.     #else
  40.         /*Set up communication data buffer with CapSense slider centroid
  41.             position and button status to be exposed to EZ-BLE Module on CY8CKIT-149 PSoC 4100S Plus Prototyping Kit*/
  42.         EZI2C_EzI2CSetBuffer1(sizeof(i2cBuffer), sizeof(i2cBuffer),i2cBuffer);
  43.     #endif
  44.         
  45.     for(;;)
  46.     {
  47.         
  48. [color=#ff0000]  [b]      SW_Tx_UART_PutString("Software Transmit UART");
  49.         SW_Tx_UART_PutString(" Component demo");
  50.         SW_Tx_UART_PutCRLF();[/b][/color]        /* Switch between SENSOR_SCAN->WAIT_FOR_SCAN_COMPLETE->PROCESS_DATA states */
  51.         switch(currentState)
  52.         {
  53.             case SENSOR_SCAN:
  54.                     /* Initiate new scan only if the CapSense block is idle */
  55.                 if(CapSense_NOT_BUSY == CapSense_IsBusy())
  56.                 {
  57.                     #if ENABLE_TUNER
  58.                         /* Update CapSense parameters set via CapSense tuner before the
  59.                            beginning of CapSense scan
  60.                         */
  61.                         CapSense_RunTuner();
  62.                     #endif
  63.                     
  64.                     /* Scan widget configured by CSDSetupWidget API */
  65.                     CapSense_ScanAllWidgets();
  66.                                        
  67.                     /* Set next state to WAIT_FOR_SCAN_COMPLETE  */
  68.                     currentState = WAIT_FOR_SCAN_COMPLETE;
  69.                 }
  70.                 break;

  71.             case WAIT_FOR_SCAN_COMPLETE:

  72.                 /* Put the device to CPU Sleep until CapSense scanning is complete*/
  73.                 if(CapSense_NOT_BUSY != CapSense_IsBusy())
  74.                 {
  75.                     CySysPmSleep();
  76.                 }
  77.                 /* If CapSense scanning is complete, process the CapSense data */
  78.                 else
  79.                 {
  80.                     currentState = PROCESS_DATA;
  81.                 }
  82.                 break;
  83.         
  84.             case PROCESS_DATA:
  85.                
  86.                 /* Process data on all the enabled widgets */
  87.                 CapSense_ProcessAllWidgets();
  88.                
  89.                 /* Controls LEDs Status based on the result of Widget processing. */
  90.                 LED_Control();
  91.             
  92.                 #if !ENABLE_TUNER
  93.                     
  94.                     /*If tuner is not enabled expose the CapSense slider centroid position and button status to
  95.                         EZ-BLE Module on CY8CKIT-149 PSoC 4100S Plus Prototyping Kit  via I2C interface*/
  96.                     
  97.                     /*Update the I2C buffer with slider centroid position*/
  98.                     i2cBuffer[SLIDER_CENTROID_INDEX] = (uint8) CapSense_GetCentroidPos(CapSense_SLD_WDGT_ID);
  99.                     
  100.                     /*Calculate the button status mask and update the I2C buffer
  101.                         bit0= BTN0 status, bit1 = BTN1 status, bit2 = BTN2 status*/
  102.                     for(widgetID = 0; widgetID < TOTAL_CAPSENSE_BUTTONS ; widgetID++)
  103.                     {
  104.                         if(CapSense_IsWidgetActive(widgetID))
  105.                         {
  106.                             SET_BIT(buttonStatus, widgetID);
  107.                         }
  108.                         else
  109.                         {
  110.                             CLEAR_BIT(buttonStatus, widgetID);
  111.                         }
  112.                     }                     
  113.                     i2cBuffer[BUTTON_STATUS_INDEX1] = buttonStatus;                  
  114.                 #endif               
  115.                
  116.                 /* Set the device state to SENSOR_SCAN */
  117.                 currentState = SENSOR_SCAN;  
  118.                 break;  
  119.             
  120.             /*******************************************************************
  121.              * Unknown power mode state. Unexpected situation.
  122.              ******************************************************************/   
  123.             default:
  124.                 break;
  125.         }
  126.     }
  127. }
复制代码

我刚刚查到了ADC的实验,串口输出是好用的,我和demo配置的应该一样。

接下来看看我昨天进行的触摸按键实验测试吧。就是在按键上加了一些水,然后测试灵敏度,经测试可以达到我们产品的要求。
接下来请看视频。


此内容由EEWORLD论坛网友yangjiaxu原创,如需转载或用于商业用途需征得作者同意并注明出处





此帖出自单片机论坛
点赞 关注(1)
 

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表