/*******************************************************************************
** 名称: void Mode_detection_open_loop(uint8_t chanl)
** 描述: SPI Mode的开环判断, 没有回读,没有上电控制的情况下,对SPI读写系统来说属于开环,需要软件工程师做开环控制避免掉电后在上电的SPI Mode的不确定性
** 输入: chanl: 通道信息Chanl_U1,Chanl_U2,Chanl_U3,Chanl_U4
** 输出: 无
** 作者: klingy
** 日期: 2012.12.19
**------------------------------------------------------------------------------
** 修改人:
** 日 期:
**------------------------------------------------------------------------------
*******************************************************************************/
void Mode_detection_open_loop(uint8_t chanl)
{
uint8_t ok_flag = 0x00;
wdt_reset();
#if HMCMODE > 0
HMC830_hmc_write(REGF0_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=0, “ok1_flag”)
{
ok_flag &= 0xF0;
}
else
{
ok_flag |= 0x0F;
}
HMC830_hmc_write(REGF1_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=1, “ok2_flag”)
{
ok_flag |= 0xE0;
}
else
{
ok_flag &= 0x0F;
}
if(ok_flag == 0xEF) //If (Ok1 & ok2 detected)
{
mode = 0xEF; //hmc_mode
}
else
{
HMC830_open_write(REGF0_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=0, “ok1_flag”)
{
ok_flag &= 0x0F;
}
else
{
ok_flag |= 0xF0;
}
HMC830_open_write(REGF1_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=1, “ok2_flag”)
{
ok_flag |= 0x0E;
}
else
{
ok_flag &= 0xF0;
}
if(ok_flag == 0xFE) //If (Ok1 & ok2 detected)
{
mode = 0xFE; //open_mode
}
}
#else
HMC830_open_write(REGF0_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=0, “ok1_flag”)
{
ok_flag &= 0x0F;
}
else
{
ok_flag |= 0xF0;
}
HMC830_open_write(REGF1_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=1, “ok2_flag”)
{
ok_flag |= 0x0E;
}
else
{
ok_flag &= 0xF0;
}
if(ok_flag == 0xFE) //If (Ok1 & ok2 detected)
{
mode = 0xFE; //open_mode
}
else
{
HMC830_hmc_write(REGF0_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=0, “ok1_flag”)
{
ok_flag &= 0xF0;
}
else
{
ok_flag |= 0x0F;
}
HMC830_hmc_write(REGF1_830, chanl);
if(Read_LOCK_830_PLL0()) //If (LD_SDO=1, “ok2_flag”)
{
ok_flag |= 0xE0;
}
else
{
ok_flag &= 0x0F;
}
if(ok_flag == 0xEF) //If (Ok1 & ok2 detected)
{
mode = 0xEF; //hmc_mode
}
}
#endif
}
|