elevator.c 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237
  1. /*
  2. * Copyright (c) 2020 Nanjing Xiaoxiongpai Intelligent Technology Co., Ltd.
  3. * Licensed under the Apache License, Version 2.0 (the "License");
  4. * you may not use this file except in compliance with the License.
  5. * You may obtain a copy of the License at
  6. *
  7. * http://www.apache.org/licenses/LICENSE-2.0
  8. *
  9. * Unless required by applicable law or agreed to in writing, software
  10. * distributed under the License is distributed on an "AS IS" BASIS,
  11. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. * See the License for the specific language governing permissions and
  13. * limitations under the License.
  14. */
  15. #include "elevator.h"
  16. #include "cmsis_os2.h"
  17. #include "iot_errno.h"
  18. #include "iot_gpio.h"
  19. #include "iot_gpio_ex.h"
  20. #include "iot_i2c.h"
  21. #include <math.h>
  22. #include <stdio.h>
  23. #include <string.h>
  24. #include <unistd.h>
  25. #define WIFI_IOT_IO_FUNC_GPIO_0_I2C1_SDA 6
  26. #define WIFI_IOT_IO_FUNC_GPIO_1_I2C1_SCL 6
  27. #define WIFI_IOT_IO_FUNC_GPIO_7_GPIO 0
  28. #define WIFI_IOT_I2C_IDX_1 1
  29. #define LED1 12
  30. #define LED2 7
  31. #define LED3 14
  32. #define LED4 10
  33. #define LED5 13
  34. // #define LED6 14
  35. // #define LED7 7
  36. // #define LED8 8
  37. // #define LED9 1
  38. // #define LED10 0
  39. #define OUT_GPIO 2
  40. /***************************************************************
  41. * 函数名称: BoardInit
  42. * 说 明: GPIO初始化
  43. * 参 数: 无
  44. * 返 回 值: 无
  45. ***************************************************************/
  46. void BoardInit(void)
  47. {
  48. IoTGpioInit(LED1);
  49. IoTGpioSetFunc(LED1, IOT_GPIO_FUNC_GPIO_12_GPIO);
  50. IoTGpioSetDir(LED1, IOT_GPIO_DIR_OUT); //设置为输出模式
  51. IoTGpioInit(LED2);
  52. IoTGpioSetFunc(LED2, IOT_GPIO_FUNC_GPIO_7_GPIO);
  53. IoTGpioSetDir(LED2, IOT_GPIO_DIR_OUT); //设置为输出模式
  54. IoTGpioInit(LED3);
  55. IoTGpioSetFunc(LED3, IOT_GPIO_FUNC_GPIO_14_GPIO);
  56. IoTGpioSetDir(LED3, IOT_GPIO_DIR_OUT); //设置为输出模式
  57. IoTGpioInit(LED4);
  58. IoTGpioSetFunc(LED4, IOT_GPIO_FUNC_GPIO_10_GPIO);
  59. IoTGpioSetDir(LED4, IOT_GPIO_DIR_OUT); //设置为输出模式
  60. IoTGpioInit(LED5);
  61. IoTGpioSetFunc(LED5, IOT_GPIO_FUNC_GPIO_13_GPIO);
  62. IoTGpioSetDir(LED5, IOT_GPIO_DIR_OUT); //设置为输出模式
  63. // IoTGpioInit(LED6);
  64. // IoTGpioSetFunc(LED6, IOT_GPIO_FUNC_GPIO_14_GPIO);
  65. // IoTGpioSetDir(LED6, IOT_GPIO_DIR_OUT); //设置为输出模式
  66. // IoTGpioInit(LED7);
  67. // IoTGpioSetFunc(LED7, IOT_GPIO_FUNC_GPIO_7_GPIO);
  68. // IoTGpioSetDir(LED7, IOT_GPIO_DIR_OUT); //设置为输出模式
  69. // IoTGpioInit(LED8);
  70. // IoTGpioSetFunc(LED8, IOT_GPIO_FUNC_GPIO_8_GPIO);
  71. // IoTGpioSetDir(LED8, IOT_GPIO_DIR_OUT); //设置为输出模式
  72. // IoTGpioInit(LED9);
  73. // IoTGpioSetFunc(LED9, IOT_GPIO_FUNC_GPIO_1_GPIO);
  74. // IoTGpioSetDir(LED9, IOT_GPIO_DIR_OUT); //设置为输出模式
  75. // IoTGpioInit(LED10);
  76. // IoTGpioSetFunc(LED10, IOT_GPIO_FUNC_GPIO_0_GPIO);
  77. // IoTGpioSetDir(LED10, IOT_GPIO_DIR_OUT); //设置为输出模式
  78. IoTGpioInit(OUT_GPIO);
  79. IoTGpioSetFunc(OUT_GPIO, IOT_GPIO_FUNC_GPIO_2_GPIO);
  80. IoTGpioSetDir(OUT_GPIO, IOT_GPIO_DIR_IN); // 设置为输入模式
  81. }
  82. /***************************************************************
  83. * 函数名称: ElevatorReadData
  84. * 说 明: 读取数据
  85. * 参 数: 无
  86. * 返 回 值: 无
  87. ***************************************************************/
  88. uint8_t ElevatorReadData(void)
  89. {
  90. IotGpioValue temp = {0};
  91. IoTGpioGetInputVal(OUT_GPIO,&temp);
  92. return temp;
  93. }
  94. /***************************************************************
  95. * 函数名称: FanStatusSet
  96. * 说 明: 风扇状态设置
  97. * 参 数: status,ENUM枚举的数据
  98. * OFF,关风扇
  99. * ON,开风扇
  100. * 返 回 值: 无
  101. ***************************************************************/
  102. void FanStatusSet(SwitchStatus status)
  103. {
  104. if (status == ON) {
  105. IoTGpioSetOutputVal(LED1, 0);
  106. IoTGpioSetOutputVal(LED2, 1);
  107. IoTGpioSetOutputVal(LED3, 1);
  108. IoTGpioSetOutputVal(LED4, 1);
  109. IoTGpioSetOutputVal(LED5, 1);
  110. // IoTGpioSetOutputVal(LED6, 1);
  111. // IoTGpioSetOutputVal(LED7, 1);
  112. // IoTGpioSetOutputVal(LED8, 1);
  113. // IoTGpioSetOutputVal(LED9, 1);
  114. // IoTGpioSetOutputVal(LED10, 0);
  115. osDelay(20);
  116. IoTGpioSetOutputVal(LED1, 0);
  117. IoTGpioSetOutputVal(LED2, 0);
  118. IoTGpioSetOutputVal(LED3, 1);
  119. IoTGpioSetOutputVal(LED4, 1);
  120. IoTGpioSetOutputVal(LED5, 1);
  121. // IoTGpioSetOutputVal(LED6, 1);
  122. // IoTGpioSetOutputVal(LED7, 1);
  123. // IoTGpioSetOutputVal(LED8, 1);
  124. // IoTGpioSetOutputVal(LED9, 0);
  125. // IoTGpioSetOutputVal(LED10, 0);
  126. osDelay(20);
  127. IoTGpioSetOutputVal(LED1, 0);
  128. IoTGpioSetOutputVal(LED2, 0);
  129. IoTGpioSetOutputVal(LED3, 0);
  130. IoTGpioSetOutputVal(LED4, 1);
  131. IoTGpioSetOutputVal(LED5, 1);
  132. // IoTGpioSetOutputVal(LED6, 1);
  133. // IoTGpioSetOutputVal(LED7, 1);
  134. // IoTGpioSetOutputVal(LED8, 0);
  135. // IoTGpioSetOutputVal(LED9, 0);
  136. // IoTGpioSetOutputVal(LED10, 0);
  137. osDelay(20);
  138. IoTGpioSetOutputVal(LED1, 0);
  139. IoTGpioSetOutputVal(LED2, 0);
  140. IoTGpioSetOutputVal(LED3, 0);
  141. IoTGpioSetOutputVal(LED4, 0);
  142. IoTGpioSetOutputVal(LED5, 1);
  143. // IoTGpioSetOutputVal(LED6, 1);
  144. // IoTGpioSetOutputVal(LED7, 0);
  145. // IoTGpioSetOutputVal(LED8, 0);
  146. // IoTGpioSetOutputVal(LED9, 0);
  147. // IoTGpioSetOutputVal(LED10, 0);
  148. osDelay(20);
  149. IoTGpioSetOutputVal(LED1, 0);
  150. IoTGpioSetOutputVal(LED2, 0);
  151. IoTGpioSetOutputVal(LED3, 0);
  152. IoTGpioSetOutputVal(LED4, 0);
  153. IoTGpioSetOutputVal(LED5, 0);
  154. // IoTGpioSetOutputVal(LED6, 0);
  155. // IoTGpioSetOutputVal(LED7, 0);
  156. // IoTGpioSetOutputVal(LED8, 0);
  157. // IoTGpioSetOutputVal(LED9, 0);
  158. // IoTGpioSetOutputVal(LED10, 0);
  159. }
  160. if (status == OFF) {
  161. IoTGpioSetOutputVal(LED1, 0);
  162. IoTGpioSetOutputVal(LED2, 0);
  163. IoTGpioSetOutputVal(LED3, 0);
  164. IoTGpioSetOutputVal(LED4, 0);
  165. IoTGpioSetOutputVal(LED5, 1);
  166. // IoTGpioSetOutputVal(LED6, 1);
  167. // IoTGpioSetOutputVal(LED7, 0);
  168. // IoTGpioSetOutputVal(LED8, 0);
  169. // IoTGpioSetOutputVal(LED9, 0);
  170. // IoTGpioSetOutputVal(LED10, 0);
  171. osDelay(20);
  172. IoTGpioSetOutputVal(LED1, 0);
  173. IoTGpioSetOutputVal(LED2, 0);
  174. IoTGpioSetOutputVal(LED3, 0);
  175. IoTGpioSetOutputVal(LED4, 1);
  176. IoTGpioSetOutputVal(LED5, 1);
  177. // IoTGpioSetOutputVal(LED6, 1);
  178. // IoTGpioSetOutputVal(LED7, 1);
  179. // IoTGpioSetOutputVal(LED8, 0);
  180. // IoTGpioSetOutputVal(LED9, 0);
  181. // IoTGpioSetOutputVal(LED10, 0);
  182. osDelay(20);
  183. IoTGpioSetOutputVal(LED1, 0);
  184. IoTGpioSetOutputVal(LED2, 0);
  185. IoTGpioSetOutputVal(LED3, 1);
  186. IoTGpioSetOutputVal(LED4, 1);
  187. IoTGpioSetOutputVal(LED5, 1);
  188. // IoTGpioSetOutputVal(LED6, 1);
  189. // IoTGpioSetOutputVal(LED7, 1);
  190. // IoTGpioSetOutputVal(LED8, 1);
  191. // IoTGpioSetOutputVal(LED9, 0);
  192. // IoTGpioSetOutputVal(LED10, 0);
  193. osDelay(20);
  194. IoTGpioSetOutputVal(LED1, 0);
  195. IoTGpioSetOutputVal(LED2, 1);
  196. IoTGpioSetOutputVal(LED3, 1);
  197. IoTGpioSetOutputVal(LED4, 1);
  198. IoTGpioSetOutputVal(LED5, 1);
  199. // IoTGpioSetOutputVal(LED6, 1);
  200. // IoTGpioSetOutputVal(LED7, 1);
  201. // IoTGpioSetOutputVal(LED8, 1);
  202. // IoTGpioSetOutputVal(LED9, 1);
  203. // IoTGpioSetOutputVal(LED10, 0);
  204. osDelay(20);
  205. IoTGpioSetOutputVal(LED1, 1);
  206. IoTGpioSetOutputVal(LED2, 1);
  207. IoTGpioSetOutputVal(LED3, 1);
  208. IoTGpioSetOutputVal(LED4, 1);
  209. IoTGpioSetOutputVal(LED5, 1);
  210. // IoTGpioSetOutputVal(LED6, 1);
  211. // IoTGpioSetOutputVal(LED7, 1);
  212. // IoTGpioSetOutputVal(LED8, 1);
  213. // IoTGpioSetOutputVal(LED9, 1);
  214. // IoTGpioSetOutputVal(LED10, 1);
  215. }
  216. }