主题中讨论的其他器件:MSP-FET
您好!
以下是我所面临问题的详细说明。
我使用 CapTIvate 设计中心设置了一个新项目、其中包括一个 MSP430FR2633IRHBR 微控制器和一个触控板。 在触控板的属性中、我将元素计数定义为64。 这与我设计的8x8触摸矩阵相匹配。 然后、我将触控板引脚手动分配给 CAP 端口、将工作条件设置为25°C、将低功耗模式设置为 LPM0、将通信接口设置为 REGISTER_I2C、并使用设计中心源代码生成向导生成源代码。
然后、我将项目导入到 Code Composer Studio 中。 可以编译该项目而不会出现任何问题。 但是,当我尝试使用 MSP-FET 运行调试会话时,它无法过去CAPT_appHandler()-->MAP_CAPT_updateUI(&g_uiApp) CAPT_MANAGER_UPDATE_SENSOR(pApp->pSensorList[ui8SensorID], pApp->ui8AppLPM)。
查看后CAPT_ISR(),我可以肯定地说CAPT_IV_END_OF_CONVERSION中断没有被触发,因此g_bEndOfConversionFlag仍然是错误的,可能会阻止 UI 更新例程。 我尝试通过调用来启用此中断MAP_CAPT_enableISR(CAPT_END_OF_CONVERSION_INTERRUPT),但仍然是相同的行为。
以下是代码中的触控板定义:
tSensor TKP00 ={ // Basic Properties .TypeOfSensor = eTrackpad, .SensingMethod = eProjected, .DirectionOfInterest = eDOIUp, .pvCallback = NULL, .ui8NrOfCycles = 32, .pCycle = TKP00_Cycles, .pSensorParams = (tGenericSensorParams*)&TKP00_Params, // Conversion Control Parameters .ui16ConversionCount = 500, .ui16ConversionGain = 100, .ui8FreqDiv = 2, .ui8ChargeLength = 0, .ui8TransferLength = 0, .bModEnable = false, .ui8BiasControl = 3, .bCsDischarge = true, .bLpmControl = false, .ui8InputSyncControl = 0, .bTimerSyncControl = false, .bIdleState = false, // The touch surface is not grounded! = Hi-Z // Tuning Parameters .ui16ProxThreshold = 10, .ui16NegativeTouchThreshold = 30, .ui16ErrorThreshold = 8191, .ui16TimeoutThreshold = 65535, .ProxDbThreshold.DbIn = 1, .ProxDbThreshold.DbOut = 0, .TouchDbThreshold.DbIn = 1, .TouchDbThreshold.DbOut = 0, .bCountFilterEnable = false, .ui8CntBeta = 1, .bSensorHalt = false, .bPTSensorHalt = true, .bPTElementHalt = true, .ui8LTABeta = 7, .bReCalibrateEnable = true,};
也就是说、有趣的是、我仍然能够通过 I2C 读取触控板数据、但 X 和 Y 位置值为0。 数据包如下所示:
0x02、0x00、0x01、0xFF、0x00、 0x00、0x00、0x00
感谢您提供任何意见。
