在示例代码中,MIBSPI 传输如何触发嘀嗒信号计数触发器。 请澄清以下疑问。

FFFF 的响应速度如何达到65.535 ms?

如何进入 mibspiGroupNotification 函数?

示例代码:
/*用户代码开始(0)*/
/*用户代码结束*/
/*包括文件*/
#include "sys_common.h"
/*用户码开始(1)*/
#include "sys_core.h"
#include "ibspi.h"(#include "ibspi.h")
/*用户代码结束*/
/*用户代码开始(2)*/
UINT16 TG0_TX_DATA[8]={0x1000,0x1111,0x1222,0x1333,0x1444, 0x1555,0x1666,0x1777};
UINT16 TG0_RX_DATA[8]={0};
UINT16 TG1_TX_DATA[8]={0x2000,0x2111,0x2222,0x23333,0x2444, 0x2555,0x2666,0x2777};
UINT16 TG1_RX_DATA[8]={0};
UINT16 TG2_TX_DATA[8]={0x3000,0x3111,0x3222,0x3333,0x3444, 0x3555,0x3666,0x3777};
UINT16 TG2_RX_DATA[8]={0};
UINT16 tg3_TX_DATA[8]={0x4000,0x4111,0x4222,0x4333,0x4444, 0x4555,0x4666,0x4777};
UINT16 tg3_RX_data[8]={0};
UINT32_t tg3_is_complete;
/*用户代码结束*/
主无效(无效)
{
/*用户码开始(3)*/
tg3_is_complete = 0x55555555;
/*在 Cortex R4 CPU 中启用 IRQ 中断*/
_enable_interrupt _();
/*-正在初始化 mibspi -启用 TG 0,1,2,3,长度各为8字节
* TG 0 -配置为 tick 触发器
* TG 1,2,3由软件触发
使用* CS 0。 - CS0处于保持模式,
* CS 0仅在每个 TG (每8字节)完成后切换
*触发器是一个触发信号,因此只有 TG 发射一次。
*
灭蚁灵();
/*-启用环回(这是为了模拟数据传输而不使用外部线*/
灭蚁灵环回(灭蚁灵 G1,Digital_LBK);
/*将 TG 0,1,2,3完全中断启用到 INT 0 */
mibspiEnableGroupNotification (mibspiREG1,0,0);
mibspiEnableGroupNotification (mibspiREG1,1,0);
mibspiEnableGroupNotification (mibspireG1,2,0);
mibspiEnableGroupNotification (mibspiREG1,3,0);
/*填写转接组*/
mibspiSetData (mibspiREG1,0,TG0_TX_DATA);
mibspiSetData (mibspiREG1,1,TG1_TX_DATA);
mibspiSetData (mibspireG1,2,TG2_TX_DATA);
mibspiSetData (mibspiREG1,3,tg3_TX_data);
/*启用 TG0启动,一旦 tickCNT 触发*/
mibspiTransfer (mibspireG1,0);
/*配置 TICKCNT
选择了数据格式0,SPICLK 设置为1000kHz
*所以勾号是0xFFFF *(1/1000kHz)= 65.5535 msec*/
mibspireG1->TICKCNT = 0x8000FFFF;
/*等待 tg3 ISR */中设置此标志
while (tg3_is_complete!= 0xA5A5A5A5);
mibspiGetData (mibspireG1,0,TG0_RX_data);
mibspiGetData (mibspiREG1,1,TG1_RX_data);
mibspiGetData (mibspireG1,2,TG2_RX_data);
mibspiGetData (mibspireg1,3,tg3_RX_data);
While (1);
/*用户代码结束*/
}
/*用户码开始(4)*/
无效的 mibspiGroupNotification (mibspike_t *mibspi, UINT32组)
{
交换机(组){
案例0:
/*启用 TG1启动,开关触发器*/
灭蚁灵转移(灭蚁灵1,1);
休息;
案例1:
/*启用 TG1启动,开关触发器*/
灭蚁灵转移(灭蚁灵转移1,2);
休息;
案例2:
/*启用 TG1启动,开关触发器*/
灭蚁灵转移(灭蚁灵1,3);
休息;
案例3:
/*启用 TG0启动,开关触发器*/
//mibspiTransfer (mibspireG1,0);
tg3_is_complete = 0xA5A5A5A5;
休息;
默认:
While (1);
休息;
}
}
/*用户代码结束*/
