📄 hamaro_api.c
字号:
{
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
/* verify/set the output mode */
switch(mpeg_out->OutputMode)
{
case HAMARO_PARALLEL_OUT:
case HAMARO_SERIAL_OUT:
{
/* set l to 0 if par, 1 if serial, bail on error */
ulRegVal = (unsigned long)((mpeg_out->OutputMode) == HAMARO_PARALLEL_OUT ? HAMARO_BIT_ZERO : HAMARO_BIT_ONE);
if (HAMARO_RegisterWrite(nim,CX2430X_MPGDATAWIDTH,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
case HAMARO_OUTMODE_UNDEF:
default:
{
/* passed parameter was invalid, flag and bail */
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->ClkOutEdge)
{
case HAMARO_CLKOUT_SETUP1_HOLD7:
case HAMARO_CLKOUT_SETUP3_HOLD5:
case HAMARO_CLKOUT_SETUP5_HOLD3:
case HAMARO_CLKOUT_SETUP7_HOLD1:
{
if (mpeg_out->OutputMode == HAMARO_PARALLEL_OUT)
{
ulRegVal = (unsigned long)(mpeg_out->ClkOutEdge&0x0fUL);
if (HAMARO_RegisterWrite(nim,CX2430X_MPGCLKPOS,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
case HAMARO_CLKOUT_DATALR_DATACR:
case HAMARO_CLKOUT_DATALR_DATACF:
case HAMARO_CLKOUT_DATALF_DATACR:
case HAMARO_CLKOUT_DATALF_DATACF:
{
/* serial out */
if (mpeg_out->OutputMode == HAMARO_SERIAL_OUT)
{
ulRegVal = (unsigned long)(mpeg_out->ClkOutEdge&0x0fUL);
if (HAMARO_RegisterWrite(nim,CX2430X_MPGCLKPOS,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
case HAMARO_CLKOUT_RISING:
case HAMARO_CLKOUT_FALLING:
case HAMARO_CLKOUT_ENDEF:
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->ClkParityMode)
{
case HAMARO_CLK_CONTINUOUS:
case HAMARO_CLK_GAPPED:
{
ulRegVal = (unsigned long)(mpeg_out->ClkParityMode == HAMARO_CLK_GAPPED ? 1 : 0);
if (HAMARO_RegisterWrite(nim,CX2430X_MPGGAPCLK,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
case HAMARO_CLK_PARITY_UNDEF:
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->HoldTime)
{
case HAMARO_ZERO_HOLD_TIME:
case HAMARO_SMALL_HOLD_TIME:
case HAMARO_MEDIUM_HOLD_TIME:
case HAMARO_LARGE_HOLD_TIME:
{
switch(mpeg_out->HoldTime)
{
case HAMARO_ZERO_HOLD_TIME:
case HAMARO_SMALL_HOLD_TIME:
{
ulRegVal = 0x02UL;
break;
}
case HAMARO_MEDIUM_HOLD_TIME:
{
ulRegVal = 0x00UL;
break;
}
case HAMARO_LARGE_HOLD_TIME:
{
ulRegVal = 0x01UL;
break;
}
default:
{
break;
}
} /* switch(... */
/* write the hold-time registers */
if (HAMARO_RegisterWrite(nim,CX2430X_MPGCLKHOLD,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
case HAMARO_CLK_HOLD_UNDEF:
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->StartSignalPolarity)
{
case HAMARO_ACTIVE_LOW:
case HAMARO_ACTIVE_HIGH:
{
ulRegVal = (mpeg_out->StartSignalPolarity == HAMARO_ACTIVE_HIGH) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGSTARTPOL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->StartSignalWidth)
{
case HAMARO_BIT_WIDE:
case HAMARO_BYTE_WIDE:
{
ulRegVal = (mpeg_out->StartSignalWidth == HAMARO_BIT_WIDE) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGSTARTMODE,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->ValidSignalPolarity)
{
case HAMARO_ACTIVE_LOW:
case HAMARO_ACTIVE_HIGH:
{
ulRegVal = (mpeg_out->ValidSignalPolarity == HAMARO_ACTIVE_HIGH) ? 0x00UL : 0x01UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGVALIDPOL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->ValidSignalActiveMode)
{
case HAMARO_ENTIRE_PACKET:
case HAMARO_FIRST_BYTE:
{
ulRegVal = (mpeg_out->ValidSignalActiveMode == HAMARO_FIRST_BYTE) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGVALIDMODE,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->FailSignalPolarity)
{
case HAMARO_ACTIVE_LOW:
case HAMARO_ACTIVE_HIGH:
{
ulRegVal = (mpeg_out->FailSignalPolarity == HAMARO_ACTIVE_HIGH) ? 0x00UL : 0x01UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGFAILPOL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->FailSignalActiveMode)
{
case HAMARO_ENTIRE_PACKET:
case HAMARO_FIRST_BYTE:
{
ulRegVal = (mpeg_out->FailSignalActiveMode == HAMARO_FIRST_BYTE) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGFAILMODE,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->SyncPunctMode)
{
case HAMARO_SYNC_WORD_PUNCTURED:
case HAMARO_SYNC_WORD_NOT_PUNCTURED:
{
ulRegVal = (mpeg_out->SyncPunctMode == HAMARO_SYNC_WORD_PUNCTURED) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGSYNCPUNC,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->FailValueWhenNoSync)
{
case HAMARO_FAIL_LOW_WHEN_NO_SYNC:
case HAMARO_FAIL_HIGH_WHEN_NO_SYNC:
{
ulRegVal = (mpeg_out->FailValueWhenNoSync == HAMARO_FAIL_HIGH_WHEN_NO_SYNC) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGFAILNSVAL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch(mpeg_out->ClkSmoothSel)
{
case HAMARO_PLL_ADVANCED_SMOOTHING:
case HAMARO_DDS_LEGACY_SMOOTHING:
case HAMARO_CLK_SMOOTHING_OFF:
{
if (HAMARO_DRIVER_SetSmoothClock(nim,mpeg_out->ClkSmoothSel,False) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
if (HAMARO_DRIVER_SetRSCntlPin(nim,CX2430X_MPGCNTL1SEL,mpeg_out->RSCntlPin1Sel) == False)
{
return (False);
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
if (HAMARO_DRIVER_SetRSCntlPin(nim,CX2430X_MPGCNTL2SEL,mpeg_out->RSCntlPin2Sel) == False)
{
return (False);
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
if (HAMARO_DRIVER_SetRSCntlPin(nim,CX2430X_MPGCNTL3SEL,mpeg_out->RSCntlPin3Sel) == False)
{
return (False);
}
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch (mpeg_out->NullDataMode)
{
case HAMARO_FIXED_NULL_DATA_ENABLED:
case HAMARO_FIXED_NULL_DATA_DISABLED:
{
ulRegVal = (mpeg_out->NullDataMode == HAMARO_FIXED_NULL_DATA_ENABLED) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGFIXNULLDATAEN,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch (mpeg_out->NullDataValue)
{
case HAMARO_FIXED_NULL_DATA_HIGH:
case HAMARO_FIXED_NULL_DATA_LOW:
{
ulRegVal = (mpeg_out->NullDataValue == HAMARO_FIXED_NULL_DATA_HIGH) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGNULLDATAVAL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
break;
}
} /* switch(... */
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch (mpeg_out->ParityDataSel)
{
case HAMARO_RS_PARITY_DATA_LOW:
ulRegVal = 0x01UL;
break;
case HAMARO_RS_PARITY_DATA_HIGH:
ulRegVal = 0x02UL;
break;
case HAMARO_RS_PARITY_DATA_UNCHANGED:
ulRegVal = 0x00UL;
break;
default:
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
return(False);
} /* switch */
if (HAMARO_RegisterWrite(nim,CX2430X_MPGPARSEL,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
/*++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
switch (mpeg_out->ValidSignalWhenFail)
{
case HAMARO_VALID_SIGNAL_INACTIVE_WHEN_FAIL:
case HAMARO_VALID_SIGNAL_ACTIVE_WHEN_FAIL:
{
ulRegVal = (mpeg_out->ValidSignalWhenFail == HAMARO_VALID_SIGNAL_INACTIVE_WHEN_FAIL) ? 0x01UL : 0x00UL;
if (HAMARO_RegisterWrite(nim,CX2430X_MPGFAILVALIDDIS,ulRegVal, HAMARO_DEMOD_I2C_IO) == False) return(False);
break;
}
default:
{
HAMARO_DRIVER_SET_ERROR(nim,HAMARO_BAD_PARM);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -