主题中讨论的其他器件:AFE4404
工具/软件:TI-RTOS
你好。
现在、我在 RTOS 环境下遇到一些中断问题。
问题与 AFE4404的 ADC_RDY 信号有关。
在我问问问问问问问问问题之前
我将首先添加我的代码。
--------------------------------------------------------------------
1.我先定义 EVT :
定义 SBC_KEY_CHANGE_EVT 0x0003
2.添加 EvtHdr :
//从配置文件传递的应用程序事件。
typedef 结构
{
appEvtHdr_t HDR;//事件标头
uint8_t *pData; //事件数据
}sbcEvt_t;
3.关于中断处理程序的声明函数 :
静态空 SimpleBLECentral_handleKeys (uint8_t shift、uint8_t keys);
void SimpleBLECentral_keyChangeHandler (uint8密钥);
静态 uint8_t SimpleBLECentral_enqueueMsg (uint8_t 事件、uint8_t 状态、uint8_t * pData);
4.并将中断设置为静态空 SimpleBLEPeripheral_init (void) :
Board_initKeys (SimpleBLECentral_keyChangeHandler);
5.将 SBC_KEY_CHANGE_EVT 添加到静态空 SimpleBLEPeripheral_processAppMsg (sbpEvt_t *pMsg)。
6.这是我在接口中所做的。 :
/*********
*@fn SimpleBLECentral_handleKeys
*
*@brief 会处理此设备的所有重要事件。
*
*@param shift -如果在 shift/alt 中、则为 true。
*@param keys -密钥事件的位字段。 有效条目:
* HAL_KEY_SW_2
* HAL_KEY_SW_1
*
*@返回 无
*
静态空 SimpleBLECentral_handleKeys (uint8_t shift、uint8_t keys)
{
(void) shift; //有意未引用参数
IF (键和键_左)
{
BTN_CNT++;
I2C_GET_Data (acc、txBuffer、rxBuffer、i2c、&i2cTransaction、dispHandle);
I2C_GET_Data (AFE、txBuffer、rxBuffer、i2c、&i2cTransaction、dispHandle);
}
IF (键和键_右键)
{
BTN_CNT++;
//PIN_setOutputValue (ledPinHandle、Board_RLED、0);
I2C_GET_Data (acc、txBuffer、rxBuffer、i2c、&i2cTransaction、dispHandle);
}
}
/*********
*@fn SimpleBLECentral_enqueueMsg
*
*@brief 会创建一条消息并将该消息放入 RTOS 队列中。
*
*@参数 事件-消息事件。
*@参数 状态-消息状态。
*@param pData -消息数据指针。
*
*@返回 true 或 false
*
静态 uint8_t SimpleBLECentral_enqueueMsg (uint8_t 事件、uint8_t 状态、
uint8_t *pData)
{
sbcEvt_t * pMsg = iCall_malloc (sizeof (sbcEvt_t));
//创建消息的动态指针。
if (pMsg)
{
pMsg->HDR.EVENT =事件;
pMsg->HDR.state = state;
pMsg->pData = pData;
//将消息排队。
返回 Util_enqueueMsg (appMsgQueue、syncdEvent、(uint8_t *) pMsg);
}
返回 false;
}
/*********
*@fn SimpleBLECentral_keyChangeHandler
*
*@ 简单的关键事件处理程序函数
*
*@param a0 -忽略
*
*@返回 无
*
void SimpleBLECentral_keyChangeHandler (uint8密钥)
{
SimpleBLECentral_enqueueMsg (SBC_KEY_CHANGE_EVT、KEY、NULL);
}
--------------------------------------------------------------------
但是问题是…
该中断线程可以捕获 Launchpad 上的按钮按压操作。
但是、在我连接到 AFE 的 ADC_RDY 信号以使 AFE 数据与 AFE 转换时间同步后、该线程无法从 AFE 的 ADC_RDY 引脚捕获240ns 脉冲。
是否有任何方法可以捕获此短信号?
此外、为了初始化 AFE、我需要使25~50uS 的低输出状态用于初始化 AFE (使用 RESETZ 引脚)。
但在 RTOS 环境 sm 中、我 无法实现适当 的延时时间。
此 延迟处理已与我当地 的分销商技术 支持团队有关。
我需要 帮助。
谢谢阅读我的问题