CH571F无法使用TMOS

RT,用了RF_PHY例程,将发送定时器弄成100(原来定时是1000也就是1秒),运行后没有定时发送,只发送了一次,打印了STA:1,就死了,CH573没问题

tmos 的时间单位是0.625ms:

160 才是100ms,1600才是1s

image.png



其次,我猜测,你可能调用的是这个 api

bStatus_t tmos_start_task( tmosTaskID taskID, tmosEvents event, tmosTimer time  );

这个函数调用 只会执行一次. 如果需要不断的执行,需要再每次事件里面再次调用 本api




还是建议,如有问题,贴些图,贴些代码片段出来,能尽量的描述清楚.


void RF_Init( void )
{
  uint8 state;
  rfConfig_t rfConfig;

  taskID = TMOS_ProcessEventRegister( RF_ProcessEvent );
  rfConfig.accessAddress = 0x71764129;	// 禁止使用0x55555555以及0xAAAAAAAA ( 建议不超过24次位反转,且不超过连续的6个0或1 )
  rfConfig.CRCInit = 0x555555;
  rfConfig.Channel = 8;
  rfConfig.LLEMode = LLE_MODE_AUTO;
  rfConfig.rfStatusCB = RF_2G4StatusCallBack;
  state = RF_Config( &rfConfig );
  PRINT("rf 2.4g init: %x\n",state);
//	{ // RX mode
//		state = RF_Rx( TX_DATA,10, 0xFF, 0xFF );
//		PRINT("RX mode.state = %x\n",state);
//	}

	{ // TX mode
		tmos_set_event( taskID , SBP_RF_PERIODIC_EVT );
	}
}


if ( events & SBP_RF_PERIODIC_EVT )
	{
    RF_Shut( );
    RF_Tx( TX_DATA,10, 0xFF, 0xFF );
    tmos_start_task( taskID , SBP_RF_PERIODIC_EVT ,100 );
    return events^SBP_RF_PERIODIC_EVT;
  }

使用的就是bStatus_t tmos_start_task( tmosTaskID taskID, tmosEvents event, tmosTimer time  );,但是已经在回调里面再次使用CH571F就是不行,在CH573下就没问题


只有登录才能回复,可以选择微信账号登录