主题中讨论的其他部件: MSPWARE
工具/软件:Code Composer Studio
您好!
如何在不使用设计中心的情况下触发微控制器的Captivate通道(我已经设计了内部板)。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具/软件:Code Composer Studio
您好!
如何在不使用设计中心的情况下触发微控制器的Captivate通道(我已经设计了内部板)。
你好,Nikhil,
您是否能够提供有关您正在尝试做什么的更多详细信息?
[报价用户="Nikhil Sonna"]如何在不使用设计中心的情况下触发微控制器的Captivate通道(我已经设计了内部板)。
听起来您好像创建了自己的带有一个或多个传感器的主板。 Captivate设计中心用于根据您的传感器设计创建在该设备上运行的软件。 为MSP430FR2633 MCU设置软件后,您可以检查软件中的触摸检测标志,然后决定要执行的操作。
请提供一些有关您在设计过程中所处位置的其他信息,我可以帮助您找到正确的信息。 软件库文档提供了操作方法部分,其中包含有关如何从Captivate软件库中提取触摸/非触摸数据的信息。
此致,
沃尔特
请忽略上一篇文章。 下面是我正在使用的代码以及配置详细信息。
代码:
#include <MSP4S.h>//通用MSP430器件包括
#include "driverlib.h"// MSPWare驱动程序库
#include "captate.h"// Captivate Touch软件库
//#include "Capt_App.h"// Captivate应用程序代码
#include "Capt_BSP.h"// Captivate EVM板支持包
#include "Capt_Touch.h"
Void主(void)
{
//
//初始化MCU
// BSP_configureMCU()设置设备IO和时钟
//全局中断启用设置为允许外围设备
//唤醒MCU。
//
WDT_A_HOLD (WDT_A_BASE);
BSP_configureMCU();
__bis_sr_register (GIE);
extern void Capt_calibrateSensorWithEMC (TSENSOR *pSensor);
LED1_ON;
__DELAY周期(100万);
LED1_OFF;
同时(1)
{
/************************* 正在测试代码*************************************************************** /
extern PRX00_E00;
IF (PRX00_E00.bProx == true)
{
LED1_ON;
}
否则
{
LED2_OFF;
}
********************* /
//Capt_appSleep();
}//结束背景循环
}//结束main()
配置文件:(由设计中心生成)
//传感器:PRX00,元件:E00
UINT16_t PRX00_E00_RawCnts[Capt_self_FREQ_CNT];
tCaptivateElementTuning PRX00_E00_Tuning [Capt_self_FREQ_CNT];
t元素PRX00_E00 =
{
ui8RxPin = 1,
ui8RxBlock = 0,
ui8TouchThreshold = 10,
.pRawCount = PRX00_E00_RawCnts,
.pTuning = PRX00_E00_Tuning,
};
我已将电极贴片连接到0.1 (在设计中心以及硬件中)。
任务:通过检测接近度,我希望发光LED。
我甚至尝试使用普通电容式触摸按钮功能。 不工作。
代码:
外部元素BTN00_E00;
IF (BTN00_E00.bTouch == 1)
{
LED1_ON;
}
否则
{
LED2_OFF;
}
按钮配置文件(由设计中心生成)
//传感器:BTN00
const tCycle* BTN00_Cycles[1]=
{
&BTN00_C00,
};
tButtonSensorParams BTN00_Params;
TSENSOR BTN00 =
{
//基本属性
.TypeOfSensor = eButtonGroup,
.SensingMethod = eSelf,
.DirectionOfInterest = eDOIDown,
.pvCallback = NULL,
ui8NrOfCycles = 1,
.pCycle = BTN00_Cycles,
.pSensorParams =(tGenericSensorParams*)&BTN00_Params,
//转换控制参数
ui16ConversionCount = 500,
ui16ConversionGain = 200,
.ui8FreqDiv = 2,
ui8ChargeLength = 0,
.ui8TransferLength = 0,
.bModEnable = FALSE,
ui8BiasControl = 3,
.bCsDisccharge = TRUE,
.bLpmControl = FALSE,
ui8InputSyncControl = 0,
.bTimerSyncControl = FALSE,
.bIdleState =真,
//调整参数
ui16ProxThreshold = 10,
ui16 NegativeTouchThreshold = 20,
ui16ErrorThreshold = 8191,
ui16超时阈值=1000,
.ProxDbThreshold.DbIn = 1,
.ProxDbThreshold.DbOut = 0,
.TouchDbThreshold.DbIn = 1,
.TouchDbThreshold.DbOut = 0,
.bCountFilterEnable = TRUE,
ui8CntBeta = 1,
.bSensorHalt = FALSE,
.bPTSensorHalt = TRUE,
.bPTELEmentHalt =真,
ui8LTABeta = 7,
.bReCalibrateEnable = true,
};
你好,Nikhil,
看着您的代码,您错过了对Captivate软件库的几个关键函数调用,必须执行这些调用才能使电容式感应功能正常工作。
您已删除了对Capt_AppStart()的调用,该调用所需的启动函数,如Capt_initUI()和Capt_CalibrateUI()。 然后,在后台while (1)循环中,检查状态标志,但从不实际更新接近传感器。
我建议您从Captivate设计中心开始,并使用它为单个接近传感器创建新的启动程序项目。 然后,您可以导入该项目并对其进行测试。 如果它工作正常,您只需添加检查prox状态,就像您现在所做的那样-但您不能删除现有的初始化,校准和测量UI的调用。
我建议您完成有关创建新传感器设计项目的研讨会:
下面还有一个有关该主题的视频:
此致,
沃尔特