1
0

AMP.c 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. #include <MyProject.h>
  2. void AMP_Init(void)
  3. {
  4. #if (Shunt_Resistor_Mode == Single_Resistor)
  5. {
  6. /* ----AMP 端口模拟功能设置---- */
  7. #if (HW_AMP_MODE == AMP_NOMAL) //外部放大
  8. {
  9. SetBit(P3_AN, P31); //AMP0 Pin设置为模拟模式 +
  10. SetBit(P3_AN, P30); //AMP0 Pin设置为模拟模式 -
  11. SetBit(P2_AN, P27); //AMP0 Pin设置为模拟模式 O
  12. SetBit(AMP_CR0, AMP0EN); //AMP0 Enable
  13. ClrBit(AMP_CR1, AMP0_GAIN2);
  14. ClrBit(AMP_CR1, AMP0_GAIN1);
  15. ClrBit(AMP_CR1, AMP0_GAIN0);
  16. }
  17. #else // 内部PGA双端差分输入
  18. {
  19. SetBit(P3_AN, P31); //AMP0 Pin设置为模拟模式 +
  20. SetBit(P3_AN, P30); //AMP0 Pin设置为模拟模式 -
  21. SetBit(P2_AN, P27); //AMP0 Pin设置为模拟模式 O
  22. ClrBit(AMP_CR0, AMP0M_GND); // 禁止运放反向输入端内部接地
  23. SetBit(AMP_CR0, AMP0EN); //AMP0 Enable
  24. AMP_CR0|=(1<<6); //使能恒功率
  25. #if (HW_AMPGAIN == AMP2x)
  26. {
  27. ClrBit(AMP_CR1, AMP0_GAIN2);
  28. ClrBit(AMP_CR1, AMP0_GAIN1);
  29. SetBit(AMP_CR1, AMP0_GAIN0);
  30. }
  31. #elif (HW_AMPGAIN == AMP4x)
  32. {
  33. ClrBit(AMP_CR1, AMP0_GAIN2);
  34. SetBit(AMP_CR1, AMP0_GAIN1);
  35. ClrBit(AMP_CR1, AMP0_GAIN0);
  36. }
  37. #elif (HW_AMPGAIN == AMP8x)
  38. {
  39. ClrBit(AMP_CR1, AMP0_GAIN2);
  40. SetBit(AMP_CR1, AMP0_GAIN1);
  41. SetBit(AMP_CR1, AMP0_GAIN0);
  42. }
  43. #elif (HW_AMPGAIN == AMP16x)
  44. {
  45. SetBit(AMP_CR1, AMP0_GAIN2);
  46. ClrBit(AMP_CR1, AMP0_GAIN1);
  47. ClrBit(AMP_CR1, AMP0_GAIN0);
  48. }
  49. #endif
  50. }
  51. #endif
  52. }
  53. #else // 双 三电阻采样
  54. {
  55. SetBit(P1_AN, P16); //AMP1 Pin设置为模拟模式 +
  56. SetBit(P1_AN, P17); //AMP1 Pin设置为模拟模式 -
  57. SetBit(P2_AN, P20); //AMP1 Pin设置为模拟模式 O
  58. SetBit(P2_AN, P21); //AMP2 Pin设置为模拟模式 +
  59. SetBit(P2_AN, P22); //AMP2 Pin设置为模拟模式 -
  60. SetBit(P2_AN, P23); //AMP2 Pin设置为模拟模式 O
  61. ClrBit(P2_OE, P23); //P23_OE需要强制为0,禁止DA1输出至PAD
  62. SetBit(P3_AN, P31); //AMP0 Pin设置为模拟模式 +
  63. SetBit(P3_AN, P30); //AMP0 Pin设置为模拟模式 -
  64. SetBit(P2_AN, P27); //AMP0 Pin设置为模拟模式 O
  65. SetBit(AMP_CR0, AMP0EN); //AMP0 Enable
  66. SetBit(AMP_CR0, AMP1EN); //AMP1 Enable
  67. SetBit(AMP_CR0, AMP2EN); //AMP2 Enable
  68. #if (HW_AMP_MODE == AMP_NOMAL) //外部放大
  69. {
  70. ClrBit(AMP_CR1, AMP0_GAIN2);
  71. ClrBit(AMP_CR1, AMP0_GAIN1);
  72. ClrBit(AMP_CR1, AMP0_GAIN0);
  73. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  74. ClrBit(AMP_CR1, AMP_PH_GAIN1);
  75. ClrBit(AMP_CR1, AMP_PH_GAIN0);
  76. }
  77. #else
  78. {
  79. #if (HW_AMPGAIN == AMP2x)
  80. {
  81. ClrBit(AMP_CR1, AMP0_GAIN2);
  82. ClrBit(AMP_CR1, AMP0_GAIN1);
  83. SetBit(AMP_CR1, AMP0_GAIN0);
  84. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  85. ClrBit(AMP_CR1, AMP_PH_GAIN1);
  86. SetBit(AMP_CR1, AMP_PH_GAIN0);
  87. }
  88. #elif (HW_AMPGAIN == AMP4x)
  89. {
  90. ClrBit(AMP_CR1, AMP0_GAIN2);
  91. SetBit(AMP_CR1, AMP0_GAIN1);
  92. ClrBit(AMP_CR1, AMP0_GAIN0);
  93. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  94. SetBit(AMP_CR1, AMP_PH_GAIN1);
  95. ClrBit(AMP_CR1, AMP_PH_GAIN0);
  96. }
  97. #elif (HW_AMPGAIN == AMP8x)
  98. {
  99. ClrBit(AMP_CR1, AMP0_GAIN2);
  100. SetBit(AMP_CR1, AMP0_GAIN1);
  101. SetBit(AMP_CR1, AMP0_GAIN0);
  102. ClrBit(AMP_CR1, AMP_PH_GAIN2);
  103. SetBit(AMP_CR1, AMP_PH_GAIN1);
  104. SetBit(AMP_CR1, AMP_PH_GAIN0);
  105. }
  106. #elif (HW_AMPGAIN == AMP16x)
  107. {
  108. SetBit(AMP_CR1, AMP0_GAIN2);
  109. ClrBit(AMP_CR1, AMP0_GAIN1);
  110. ClrBit(AMP_CR1, AMP0_GAIN0);
  111. SetBit(AMP_CR1, AMP_PH_GAIN2);
  112. ClrBit(AMP_CR1, AMP_PH_GAIN1);
  113. ClrBit(AMP_CR1, AMP_PH_GAIN0);
  114. }
  115. #endif
  116. }
  117. #endif
  118. }
  119. #endif
  120. }