StepUp.c
上传用户:hjhsjcl
上传日期:2020-09-25
资源大小:11378k
文件大小:9k
源码类别:

压缩解压

开发平台:

C++ Builder

  1. /*==========================================================================
  2. Copyright (c) 2004 ALi Corporation. All Rights Reserved
  3. File: StepUp.c
  4. content: step up converter
  5. History: Created by Hsin Hsien Wu 2004/2/9
  6. ==========================================================================*/
  7. #include "TypeDef.h"
  8. #include "Const.h"
  9. #include "Reg5661.h"
  10. #ifdef _LIB_MAKE_
  11. #undef USE_STEP_UP_CONVERTER
  12. #define USE_STEP_UP_CONVERTER 1
  13. #endif
  14. #if(USE_STEP_UP_CONVERTER)
  15. #if((LCD_TYPE==TFT_ORISE))     // Jeff070125#2
  16. #include "StepUp.h"
  17. #define DutCycle_defatult_H0 27//28 // modify by Rojam 2007-04-02 11:30
  18. #define DutCycle_defatult_H1 0
  19. #define DutCycle_defatult_L0  22//14 // modify by Rojam 2007-04-02 11:30
  20. #define DutCycle_defatult_L1  0
  21. #if(_PM_INIT_)
  22. void InitStepUpConverter (void) large
  23. {
  24. //WORD   wAuxDelay;
  25. //BYTE   bAuxtemp;
  26. obPWM_SET_1=DutCycle_defatult_H0;
  27. obPWM_SET_2=DutCycle_defatult_H1;
  28. obPWM_SET_3=DutCycle_defatult_L0;
  29. obPWM_SET_4=DutCycle_defatult_L1;
  30. obPWM_SET_5|=0x02;
  31. obMODSEL3|=0x10;
  32. //for(wAuxDelay=0;wAuxDelay<0x0FFF;wAuxDelay=wAuxDelay+1)
  33. // {bAuxtemp=AuxIncheck( );}
  34. //if(bAuxtemp>125)
  35. //{
  36.        //     PwmDisable();
  37. //}
  38. return;
  39. }
  40. #endif
  41. // WHH 070128 mark
  42. /*CBYTE cbPwmSet1[9] = {140,93,70,56,46,40,35,31,28};
  43. CBYTE cbPwmSet2[9] = {0,0,0,0,0,0,0,0,0};
  44. CBYTE cbPwmSet3[9] = {70,47,35,28,23,20,17,15,14};
  45. CBYTE cbPwmSet4[9] = {0,0,0,0,0,0,0,0,0};*/
  46. // WHH 070128
  47. //CBYTE cbPwmSet1[13] = {140,93,70,56,46,40,35,31,28,25,23,22,20}; // modify by Rojam 2007-04-02 11:34
  48. CBYTE cbPwmSet1[13] = {110,73,55,44,37,31,28,24,22,20,18,17,16};
  49. CBYTE cbPwmSet2[13] = {0};   // WHH070309#?
  50. //CBYTE cbPwmSet3[13] = {70,47,35,28,23,20,17,15,14,13,12,11,10};
  51. CBYTE cbPwmSet3[13] = {132,88,66,53,44,38,33,29,27,24,22,20,19};
  52. CBYTE cbPwmSet4[13] = {0}; // WHH070309#?
  53. void StepUpConverterDutyCycleSetting(void) large
  54. {
  55. BYTE btemp;
  56. btemp=obCLKMCUCTRL&0x70;
  57. switch(btemp)
  58. {
  59. case 0x40: // Use DCV_SYS_CLK
  60. {
  61. obPWM_SET_1=cbPwmSet1[obCLKMCUDIVF];
  62. obPWM_SET_2=cbPwmSet2[obCLKMCUDIVF];
  63. obPWM_SET_3=cbPwmSet3[obCLKMCUDIVF];  
  64. obPWM_SET_4=cbPwmSet4[obCLKMCUDIVF];
  65. }
  66. break;
  67. case 0x30: // Use Audio clock
  68.   {
  69. obPWM_SET_1=(cbPwmSet1[obCLKMCUDIVF]>>1); // WHH070309#?
  70. obPWM_SET_2=(cbPwmSet2[obCLKMCUDIVF]>>1);
  71. obPWM_SET_3=(cbPwmSet3[obCLKMCUDIVF]>>1);  
  72. obPWM_SET_4=(cbPwmSet4[obCLKMCUDIVF]>>1);
  73.        }
  74. break;
  75. case 0x50: // Use XTAL clock
  76. {
  77. obPWM_SET_1=18;
  78. obPWM_SET_2=0;
  79. obPWM_SET_3=22;//11;   // modify by Rojam 2007-04-13 10:33
  80. obPWM_SET_4=0;
  81. }
  82. break;
  83. case 0x00: // Use 120/2MHz clock
  84. {
  85.  obPWM_SET_1=90;//114; // modify by Rojam 2007-04-13 10:33
  86.  obPWM_SET_2=0;
  87.  obPWM_SET_3=108;//57;   // modify by Rojam 2007-04-13 10:33
  88.  obPWM_SET_4=0;
  89. }
  90. break;
  91. case 0x20: // Use 48MHz clock
  92.       {
  93. obPWM_SET_1=72;//91; // modify by Rojam 2007-04-13 10:33
  94. obPWM_SET_2=0;
  95. obPWM_SET_3=86;//46; // modify by Rojam 2007-04-13 10:33
  96. obPWM_SET_4=0;
  97.    }
  98. break;
  99. }
  100.  return;
  101. }
  102. #if(!(_PM_PLAY_DATA_RTN_RESTORE_))
  103. void PwmEnable() large
  104. {
  105.  obMODSEL3 |= 0x10;
  106. }
  107. #endif
  108. #if(!(_PM_MTP_INIT_|_PM_PLAY_DATA_RTN_RESTORE_))
  109. void PwmDisable()  large
  110. {
  111. obGPIOBDIR|= 0x01;
  112. obGPIOBDAT&=(~0x01);   //let GPIOB0 = low then disable pwm
  113. obMODSEL3 &= (~0x10);
  114. }
  115. #endif
  116. #elif((LCD_TYPE==TFT_TOPPOLY))   // Jeff070125#2
  117. #include "StepUp.h"
  118. #define DutCycle_defatult_H0 28
  119. #define DutCycle_defatult_H1 0
  120. #define DutCycle_defatult_L0  16
  121. #define DutCycle_defatult_L1  0
  122. #if(_PM_INIT_)
  123. void InitStepUpConverter (void) large
  124. {
  125. //WORD   wAuxDelay;
  126. //BYTE   bAuxtemp;
  127. obPWM_SET_1=DutCycle_defatult_H0;
  128. obPWM_SET_2=DutCycle_defatult_H1;
  129. obPWM_SET_3=DutCycle_defatult_L0;
  130. obPWM_SET_4=DutCycle_defatult_L1;
  131. obPWM_SET_5|=0x02;
  132. obMODSEL3|=0x10;
  133. //for(wAuxDelay=0;wAuxDelay<0x0FFF;wAuxDelay=wAuxDelay+1)
  134. // {bAuxtemp=AuxIncheck( );}
  135. //if(bAuxtemp>125)
  136. //{
  137.        //     PwmDisable();
  138. //}
  139. return;
  140. }
  141. #endif
  142. // WHH 070128 mark
  143. /*CBYTE cbPwmSet1[9] = {140,93,70,56,47,40,35,31,28};
  144. CBYTE cbPwmSet2[9] = {0,0,0,0,0,0,0,0,0};
  145. CBYTE cbPwmSet3[9] = {80,53,40,32,27,23,20,18,16};
  146. CBYTE cbPwmSet4[9] = {0,0,0,0,0,0,0,0,0};*/
  147. // WHH 070128
  148. CBYTE cbPwmSet1[13] = {140,93,70,56,47,40,35,31,28,25,23,22,20};
  149. CBYTE cbPwmSet2[13] = {0};      // WHH070309#?
  150. CBYTE cbPwmSet3[13] = {80,53,40,32,27,23,20,18,16,15,13,12,11};
  151. CBYTE cbPwmSet4[13] = {0}; // WHH070309#?
  152. void StepUpConverterDutyCycleSetting(void) large
  153. {
  154. BYTE btemp;
  155. btemp=obCLKMCUCTRL&0x70;
  156. switch(btemp)
  157. {
  158. case 0x40: // Use DCV_SYS_CLK
  159. {
  160. obPWM_SET_1=cbPwmSet1[obCLKMCUDIVF];
  161. obPWM_SET_2=cbPwmSet2[obCLKMCUDIVF];
  162. obPWM_SET_3=cbPwmSet3[obCLKMCUDIVF];  
  163. obPWM_SET_4=cbPwmSet4[obCLKMCUDIVF];
  164. }
  165. break;
  166. case 0x30: // Use Audio clock
  167.   {
  168. obPWM_SET_1=(cbPwmSet1[obCLKMCUDIVF]>>1);  // WHH070309#?
  169. obPWM_SET_2=(cbPwmSet2[obCLKMCUDIVF]>>1);
  170. obPWM_SET_3=(cbPwmSet3[obCLKMCUDIVF]>>1);  
  171. obPWM_SET_4=(cbPwmSet4[obCLKMCUDIVF]>>1);
  172.        }
  173. break;
  174. case 0x50: // Use XTAL clock
  175. {
  176. obPWM_SET_1=23;
  177. obPWM_SET_2=0;
  178. obPWM_SET_3=13;  
  179. obPWM_SET_4=0;
  180. }
  181. break;
  182. case 0x00: // Use 120/2MHz clock
  183. {
  184.  obPWM_SET_1=114;
  185.  obPWM_SET_2=0;
  186.  obPWM_SET_3=65;  
  187.  obPWM_SET_4=0;
  188. }
  189. break;
  190. case 0x20: // Use 48MHz clock
  191.       {
  192.                  obPWM_SET_1=91;
  193. obPWM_SET_2=0;
  194. obPWM_SET_3=52;
  195. obPWM_SET_4=0;
  196.  
  197.    }
  198. break;
  199. }
  200.  return;
  201. }
  202. #if(!_PM_MTP_)
  203. void PwmEnable() large
  204. {
  205.  obMODSEL3 |= 0x10;
  206. }
  207. #endif
  208. #if(!(_PM_MTP_INIT_))
  209. void PwmDisable()  large
  210. {
  211.      obGPIOBDIR|= 0x01;
  212.  obGPIOBDAT&=(~0x01);   //let GPIOB0 = low then disable pwm
  213.  obMODSEL3 &= (~0x10);
  214. }
  215. #endif
  216. #elif((LCD_TYPE==TFT_SOLOMON))  // Jeff070125#2
  217. #include "StepUp.h"
  218. #define DutCycle_defatult_H0 36
  219. #define DutCycle_defatult_H1 0
  220. #define DutCycle_defatult_L0  27
  221. #define DutCycle_defatult_L1  0
  222. #if(_PM_INIT_)
  223. void InitStepUpConverter (void) large
  224. {
  225. //WORD   wAuxDelay;
  226. //BYTE   bAuxtemp;
  227. obPWM_SET_1=DutCycle_defatult_H0;
  228. obPWM_SET_2=DutCycle_defatult_H1;
  229. obPWM_SET_3=DutCycle_defatult_L0;
  230. obPWM_SET_4=DutCycle_defatult_L1;
  231. obPWM_SET_5|=0x02;
  232. obMODSEL3|=0x10;
  233. //for(wAuxDelay=0;wAuxDelay<0x0FFF;wAuxDelay=wAuxDelay+1)
  234. // {bAuxtemp=AuxIncheck( );}
  235. //if(bAuxtemp>125)
  236. //{
  237.        //     PwmDisable();
  238. //}
  239. return;
  240. }
  241. #endif
  242. // WHH 070128 mark
  243. /*CBYTE cbPwmSet1[9] = {180,120,90,72,60,51,45,40,36};
  244. CBYTE cbPwmSet2[9] = {0,0,0,0,0,0,0,0,0};
  245. CBYTE cbPwmSet3[9] = {135,90,68,54,45,39,34,30,27};
  246. CBYTE cbPwmSet4[9] = {0,0,0,0,0,0,0,0,0};*/
  247. // WHH 070128
  248. CBYTE cbPwmSet1[13] = {180,120,90,72,60,51,45,40,36,33,30,28,26};
  249. CBYTE cbPwmSet2[13] = {0}; // WHH070309#?
  250. CBYTE cbPwmSet3[13] = {135,90,68,54,45,39,34,30,27,25,23,21,19};
  251. CBYTE cbPwmSet4[13] = {0};
  252. void StepUpConverterDutyCycleSetting(void) large
  253. {
  254. BYTE btemp;
  255. btemp=obCLKMCUCTRL&0x70;
  256. switch(btemp)
  257. {
  258. case 0x40: // Use DCV_SYS_CLK
  259. {
  260. obPWM_SET_1=cbPwmSet1[obCLKMCUDIVF];
  261. obPWM_SET_2=cbPwmSet2[obCLKMCUDIVF];
  262. obPWM_SET_3=cbPwmSet3[obCLKMCUDIVF];  
  263. obPWM_SET_4=cbPwmSet4[obCLKMCUDIVF];
  264. }
  265. break;
  266. case 0x30: // Use Audio clock
  267.   {
  268. obPWM_SET_1=(cbPwmSet1[obCLKMCUDIVF]>>1); // WHH070309#?
  269. obPWM_SET_2=(cbPwmSet2[obCLKMCUDIVF]>>1);
  270. obPWM_SET_3=(cbPwmSet3[obCLKMCUDIVF]>>1);  
  271. obPWM_SET_4=(cbPwmSet4[obCLKMCUDIVF]>>1);
  272.        }
  273. break;
  274. case 0x50: // Use XTAL clock
  275. {
  276. obPWM_SET_1=30;
  277. obPWM_SET_2=0;
  278. obPWM_SET_3=23;
  279. obPWM_SET_4=0;
  280. }
  281. break;
  282. case 0x00: // Use 120/2MHz clock
  283. {
  284.  obPWM_SET_1=147;
  285.  obPWM_SET_2=0;
  286.  obPWM_SET_3=110;
  287.  obPWM_SET_4=0;
  288. }
  289. break;
  290. case 0x20: // Use 48MHz clock
  291.       {
  292.                  obPWM_SET_1=118;
  293. obPWM_SET_2=0;
  294. obPWM_SET_3=88;
  295. obPWM_SET_4=0;
  296.  
  297.    }
  298. break;
  299. }
  300.  return;
  301. }
  302. //#if(0)
  303. #if(!_PM_MTP_)
  304. void PwmEnable() large
  305. {
  306.  obMODSEL3 |= 0x10;
  307. }
  308. #endif
  309. //#endif
  310. #if(!(_PM_MTP_INIT_))
  311. void PwmDisable()  large
  312. {
  313.      obGPIOBDIR|= 0x01;
  314.  obGPIOBDAT&=(~0x01);   //let GPIOB0 = low then disable pwm
  315.  obMODSEL3 &= (~0x10);
  316. }
  317. #endif
  318. #endif
  319. #endif