You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

224 lines
5.2 KiB

4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
  1. #include "ozone_work.h"
  2. extern uint32_t g_frequency;
  3. extern uint32_t g_sys_sick;
  4. extern uint32_t g_duty[4];
  5. uint32_t g_count_down_begin_sys_time = 0;
  6. int ozone_work_state = 0; // 0û�й�����1һֱ������2��ʱ����
  7. void ozone_work_mode(int mode) {
  8. ozone_work_state = 1;
  9. port_fan_set(true);
  10. switch (mode) {
  11. case 0:
  12. gears_led_on(0);
  13. break;
  14. case 1:
  15. gears_led_on(1);
  16. break;
  17. case 2:
  18. gears_led_on(2);
  19. break;
  20. case 3:
  21. g_ozone_work_over(); //��������
  22. break;
  23. default:
  24. break;
  25. }
  26. }
  27. int g_ozen_gears = 1; // M������Ϊ���ϵ���������Ĭ���´�����50%��PWM����
  28. void set_ozen_gears(int ozen_gears) {
  29. /**
  30. * @brief Construct a new switch object
  31. * pwm
  32. */
  33. printf("g_sys_sick:%d\n",g_sys_sick);
  34. switch (ozen_gears) {
  35. case 0:
  36. set_pwm_frequency_duty(g_frequency, g_duty[0]);
  37. g_ozen_gears = 1;
  38. printf("pwm g_duty:%d", g_duty[0]);
  39. ozone_work_mode(0);
  40. break;
  41. case 1:
  42. set_pwm_frequency_duty(g_frequency, g_duty[1]);
  43. g_ozen_gears = 2;
  44. printf("pwm g_duty:%d",g_duty[1]);
  45. ozone_work_mode(1);
  46. break;
  47. case 2:
  48. set_pwm_frequency_duty(g_frequency, g_duty[2]);
  49. g_ozen_gears = 3;
  50. printf("pwm g_duty:%d",g_duty[2]);
  51. ozone_work_mode(2);
  52. break;
  53. case 3:
  54. set_pwm_frequency_duty(g_frequency, g_duty[3]);
  55. g_ozen_gears = 0;
  56. printf("pwm g_duty:%d", g_duty[3]);
  57. ozone_work_mode(3);
  58. break;
  59. }
  60. }
  61. /**
  62. * @brief
  63. *
  64. * @param led_number 0 1̵ 2 3ȫ
  65. */
  66. void gears_led_on(uint8_t led_number) {
  67. switch (led_number) {
  68. case 0:
  69. port_led_r_set(true);
  70. port_led_g_set(false);
  71. port_led_b_set(false);
  72. break;
  73. case 1:
  74. port_led_r_set(false);
  75. port_led_g_set(true);
  76. port_led_b_set(false);
  77. break;
  78. case 2:
  79. port_led_r_set(false);
  80. port_led_g_set(false);
  81. port_led_b_set(true);
  82. break;
  83. case 3:
  84. port_led_r_set(false);
  85. port_led_g_set(false);
  86. port_led_b_set(false);
  87. break;
  88. default:
  89. break;
  90. }
  91. }
  92. int time_key_press_frequency = 0; //ÿ����4�ν�����0
  93. uint32_t g_ozone_work_time = 0;
  94. void set_ozone_work_time(void) {
  95. if (!ozone_work_state) { //�������ڲ��ǹ���״̬��ֱ�ӿ�ʼ����
  96. set_ozen_gears(0);
  97. }
  98. //��ȡ���ڵ�ʱ�䣬��Ϊ�жϵ���ʱʱ���Ļ�׼
  99. g_count_down_begin_sys_time = get_sys_ticket();
  100. ozone_work_state = 2; //���ڶ�ʱ����״̬
  101. port_fan_set(1); //���ȿ�ʼ����
  102. printf("��ʱ��ʼg_sys_sick:%d\n",g_sys_sick);
  103. switch (time_key_press_frequency) {
  104. case 0: //��Сʱ
  105. // g_ozone_work_time = 5000;//5s
  106. // g_ozone_work_time = 72000000;
  107. g_ozone_work_time = 7200000;
  108. printf("g_ozone_work_time:%d", g_ozone_work_time);
  109. time_key_press_frequency = 1;
  110. timing_led_on(0);
  111. break;
  112. case 1: //��Сʱ
  113. // g_ozone_work_time = 100000;
  114. g_ozone_work_time = 14400000;
  115. printf("g_ozone_work_time:%d", g_ozone_work_time);
  116. time_key_press_frequency = 2;
  117. timing_led_on(1);
  118. break;
  119. case 2: //��Сʱ
  120. // g_ozone_work_time = 150000;
  121. g_ozone_work_time = 21600000;
  122. printf("g_ozone_work_time:%d", g_ozone_work_time);
  123. time_key_press_frequency = 3;
  124. timing_led_on(2);
  125. break;
  126. case 3: //��Сʱ
  127. // g_ozone_work_time = 200000;
  128. // g_ozone_work_time = 5000;//5s
  129. g_ozone_work_time = 28800000;
  130. printf("g_ozone_work_time:%d", g_ozone_work_time);
  131. time_key_press_frequency = 4;
  132. timing_led_on(3);
  133. break;
  134. case 4:
  135. ozone_work_state = 1; //һֱ����
  136. printf("close timing");
  137. timing_led_on(4);
  138. time_key_press_frequency = 0;
  139. break;
  140. default:
  141. break;
  142. }
  143. }
  144. void g_ozone_work_over(void) {
  145. /**
  146. * @brief ʱ
  147. *
  148. */
  149. set_pwm_frequency_duty(g_frequency, g_duty[3]); //�ر�PWM����
  150. ozone_work_state = 0;
  151. gears_led_on(3); //�ر�RGB
  152. timing_led_on(4); //�ر�4��led��
  153. time_key_press_frequency =
  154. 0; //��time_key_press_frequency=0�´ΰ������´Ӷ�ʱ2Сʱ��ʼ
  155. g_ozen_gears = 0; // g_ozen_gears=0�´ΰ������´����ߵ���ʼ
  156. port_fan_set(false); //���Ƚ�������
  157. }
  158. /**
  159. * @brief ʱ
  160. *
  161. */
  162. void is_ozone_work_time_over(void) {
  163. if (port_haspassedms(g_count_down_begin_sys_time) >= g_ozone_work_time) {
  164. g_count_down_begin_sys_time = get_sys_ticket();
  165. g_ozone_work_over();
  166. printf("time over\r\n");
  167. }
  168. }
  169. /**
  170. * @brief ʱʱӦָʾ
  171. *
  172. * @param led_number 0led0 1led1 2led2 3led3 4ȫ𲢴
  173. */
  174. static void timing_led_on(uint8_t led_number) {
  175. switch (led_number) {
  176. case 0:
  177. port_led0_set(true);
  178. port_led1_set(false);
  179. port_led2_set(false);
  180. port_led3_set(false);
  181. break;
  182. case 1:
  183. port_led0_set(false);
  184. port_led1_set(true);
  185. port_led2_set(false);
  186. port_led3_set(false);
  187. break;
  188. case 2:
  189. port_led0_set(false);
  190. port_led1_set(false);
  191. port_led2_set(true);
  192. port_led3_set(false);
  193. break;
  194. case 3:
  195. port_led0_set(false);
  196. port_led1_set(false);
  197. port_led2_set(false);
  198. port_led3_set(true);
  199. break;
  200. case 4:
  201. port_led0_set(false);
  202. port_led1_set(false);
  203. port_led2_set(false);
  204. port_led3_set(false);
  205. break;
  206. default:
  207. break;
  208. }
  209. }