CMD0x41_Request_AnalogChannelOffset.c 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #include "CommandsDefine.h"
  2. #include "ProjectConfig.h"
  3. #include "Probe_MSO7000X_2d5g.h"
  4. #include "AnalogChannelCtrl_2d5g_base.h"
  5. #include "Helper.h"
  6. #include "delay.h"
  7. //////////////////////////////////////////////////////////////////////////////
  8. // 2203/5/X GHz_ljw 合并版
  9. // 2203/6/9 GHz_ljw 优化OFFSET
  10. //////////////////////////////////////////////////////////////////////////////
  11. void CMD0x41_Request_AnalogChannelOffset_process(u8 *pData,u16 dataLen,u8 bIsContentBitInverted_Recv,u8 bIsContentBitInverted_SendBack)
  12. {
  13. //delay_ms(10);
  14. //return;
  15. #ifdef RUNNING_WHERE_AT_BOOT
  16. Command_SendbackErrorMessage(Error0x02_CannotRunAtBoot);
  17. #else
  18. u8 bDataOK=1;
  19. u8 validDataLength=dataLen;
  20. if (bIsContentBitInverted_Recv)
  21. {
  22. validDataLength=dataLen/2;
  23. if (!Helper_CheckInvertBytesIsRegist(pData,dataLen))
  24. bDataOK=0;
  25. }
  26. if (validDataLength<5)
  27. bDataOK=0;
  28. if (bDataOK)
  29. {
  30. u32 AD5668_CMD;
  31. for(u8 i=1; i<5; i++) {
  32. AD5668_CMD=(AD5668_CMD<<8)+pData[i];//get DAC(AD5628) command code
  33. //AD5668_CMD=(AD5668_CMD<<4); }
  34. }
  35. //u8 setPort = (AD5668_CMD>>16)&0xF - 1;
  36. u8 dacID = pData[0]-6;
  37. //u16 data = AD5668_CMD&0xFFFF;
  38. //u8 isOffset = 0xff;
  39. //if(DAC_CMDs[dacID][setPort] == data) return;
  40. if(dacID==0)//DAC1
  41. {
  42. DAC_AD5675(AD5668_CMD,DAC1);
  43. }
  44. else if(dacID==1)//DAC2
  45. {
  46. DAC_AD5675(AD5668_CMD,DAC2);
  47. }
  48. if(dacID==2)//DAC3
  49. {
  50. DAC_AD5675(AD5668_CMD,DAC3);
  51. }
  52. }
  53. else
  54. Command_SendbackErrorMessage(Error0x05_CMD_ParaLentghError,1);
  55. #endif
  56. }