打印

新手求教 用psoc4中capsense的buttons实现调节灯颜色的功能

[复制链接]
1097|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
西乌拉|  楼主 | 2015-4-6 11:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
新手求教,本身例子给的是滑动触摸实现调节灯颜色的功能,我想把它改成按键触摸,但试了几个读取按键的函数都编译不通过,求大神指教。
沙发
西乌拉|  楼主 | 2015-4-6 14:27 | 只看该作者
求大神解救

使用特权

评论回复
板凳
外套番茄| | 2016-7-10 14:47 | 只看该作者
我不是什么大神哦,可以说一下你编译不通过,提示出什么错呢?你把滑条感应改成button感应之后有重新
generate API么?

使用特权

评论回复
地板
gll123| | 2016-7-20 11:56 | 只看该作者
你是想判断按键是不是触发的状态吗: 你可以在组件手册里面查看这个函数;
uint32 CapSense_CheckIsSensorActive(uint32 sensor)
具体的使用方法,你可以参考下面的历程(这个历程包含了滑条和按键)
int main()
{
    LCD_Start();
    CapSense_CSD_Start();
       
        /* The custom fonts for the bargraph need to be manually loaded */
        LCD_LoadCustomFonts(LCD_customFonts);
   
        LCD_Position(0u, 0u);
    LCD_PrintString("CSD01");

    /* Enable global interrupts */
    CyGlobalIntEnable;

    /* Initialize baselines */
    CapSense_CSD_InitializeAllBaselines();
   
    while(1u)
    {
        /* Update all baselines */
        CapSense_CSD_UpdateEnabledBaselines();
        
                   /* Start scanning all enabled sensors */
            CapSense_CSD_ScanEnabledWidgets();
   
        /* Wait for scanning to complete */
                while(CapSense_CSD_IsBusy() != 0)
                {
                        /* Loop until condition true */
                }

                /* Display CapSense state using LED/LCD */
        CapSense_DisplayState();
    }
}

/*******************************************************************************
* Function Name: CapSense_DisplayState
********************************************************************************
* Summary:
*  Function performs following functions:
*   Display Buttons' state using LEDs and Slider state using LCD bargraph
*
* Parameters:
*  None
*
* Return:
*  None
*
*******************************************************************************/
void CapSense_DisplayState(void)
{
    /* Display BUTTON0 state */
        if (CapSense_CSD_CheckIsWidgetActive(CapSense_CSD_BUTTON0__BTN))
        {
                LED1_Write(1u);
        }
        else
        {
                LED1_Write(0u);
        }
   
        /* Display BUTTON1 state */
        if (CapSense_CSD_CheckIsWidgetActive(CapSense_CSD_BUTTON1__BTN))
        {
                LED2_Write(1u);
        }
        else
        {
                LED2_Write(0u);
        }

    /* Find Slider Position */
    curPos = CapSense_CSD_GetCentroidPos(CapSense_CSD_LINEARSLIDER0__LS);   
   
    /* Reset position */
    if(curPos == 0xFFFFu)
    {
        curPos = 0u;
    }
               
    /* Move bargraph */
    if (curPos != oldPos)
    {
        oldPos = curPos;
        /* Display Slider bargraph */
        if (curPos != 0u)
        {
            LCD_DrawHorizontalBG(0u, 9u, 6u, curPos >> 2);
        }
        
        /* Display Slider position value */
        LCD_Position(1u, 10u);
        LCD_PrintInt16(curPos);
    }
}

使用特权

评论回复
5
qiangg| | 2016-7-23 13:21 | 只看该作者
新手的话,你先仿真试试,一步一步的,看下程序的结构

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

21

帖子

0

粉丝