gpio.c 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. /* Copyright Statement:
  2. *
  3. * This software/firmware and related documentation ("AutoChips Software") are
  4. * protected under relevant copyright laws. The information contained herein is
  5. * confidential and proprietary to AutoChips Inc. and/or its licensors. Without
  6. * the prior written permission of AutoChips inc. and/or its licensors, any
  7. * reproduction, modification, use or disclosure of AutoChips Software, and
  8. * information contained herein, in whole or in part, shall be strictly
  9. * prohibited.
  10. *
  11. * AutoChips Inc. (C) 2022. All rights reserved.
  12. *
  13. * BY OPENING THIS FILE, RECEIVER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  14. * THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("AUTOCHIPS SOFTWARE")
  15. * RECEIVED FROM AUTOCHIPS AND/OR ITS REPRESENTATIVES ARE PROVIDED TO RECEIVER
  16. * ON AN "AS-IS" BASIS ONLY. AUTOCHIPS EXPRESSLY DISCLAIMS ANY AND ALL
  17. * WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
  18. * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR
  19. * NONINFRINGEMENT. NEITHER DOES AUTOCHIPS PROVIDE ANY WARRANTY WHATSOEVER WITH
  20. * RESPECT TO THE SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY,
  21. * INCORPORATED IN, OR SUPPLIED WITH THE AUTOCHIPS SOFTWARE, AND RECEIVER AGREES
  22. * TO LOOK ONLY TO SUCH THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO.
  23. * RECEIVER EXPRESSLY ACKNOWLEDGES THAT IT IS RECEIVER'S SOLE RESPONSIBILITY TO
  24. * OBTAIN FROM ANY THIRD PARTY ALL PROPER LICENSES CONTAINED IN AUTOCHIPS
  25. * SOFTWARE. AUTOCHIPS SHALL ALSO NOT BE RESPONSIBLE FOR ANY AUTOCHIPS SOFTWARE
  26. * RELEASES MADE TO RECEIVER'S SPECIFICATION OR TO CONFORM TO A PARTICULAR
  27. * STANDARD OR OPEN FORUM. RECEIVER'S SOLE AND EXCLUSIVE REMEDY AND AUTOCHIPS'S
  28. * ENTIRE AND CUMULATIVE LIABILITY WITH RESPECT TO THE AUTOCHIPS SOFTWARE
  29. * RELEASED HEREUNDER WILL BE, AT AUTOCHIPS'S OPTION, TO REVISE OR REPLACE THE
  30. * AUTOCHIPS SOFTWARE AT ISSUE, OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE
  31. * CHARGE PAID BY RECEIVER TO AUTOCHIPS FOR SUCH AUTOCHIPS SOFTWARE AT ISSUE.
  32. */
  33. /******************************************************************************
  34. * @version: V2.0.1 AC7840x Demo
  35. ******************************************************************************/
  36. /*!
  37. * @file gpio.c
  38. *
  39. * @brief This file contains the user gpio function..
  40. */
  41. /* =========================================== Includes =========================================== */
  42. #include "gpio.h"
  43. /* ============================================ Define ============================================ */
  44. /* =========================================== Typedef ============================================ */
  45. /* ========================================== Variables =========================================== */
  46. /* ==================================== Functions declaration ===================================== */
  47. /*!
  48. * @brief 初始化LED引脚
  49. *
  50. * @param none
  51. * @return none
  52. */
  53. void GPIO_LedInit(void)
  54. {
  55. /*初始化引脚功能,有部分引脚上电默认为非GPIO,必须选择其功能为GPIO才能作为GPIO使用*/
  56. GPIO_DRV_SetMuxModeSel(LED1_PORT, LED1_PIN, PORT_MUX_AS_GPIO); /*功能复用选择*/
  57. //GPIO_DRV_SetMuxModeSel(LED2_PORT, LED2_PIN, PORT_MUX_AS_GPIO);
  58. GPIO_DRV_SetMuxModeSel(LED3_PORT, LED3_PIN, PORT_MUX_AS_GPIO); /*功能复用选择*/
  59. GPIO_DRV_SetMuxModeSel(LED4_PORT, LED4_PIN, PORT_MUX_AS_GPIO);
  60. GPIO_DRV_SetMuxModeSel(K0_PORT, K0_PIN, PORT_MUX_AS_GPIO);
  61. GPIO_DRV_SetMuxModeSel(K1_PORT, K1_PIN, PORT_MUX_AS_GPIO);
  62. GPIO_DRV_SetMuxModeSel(K2_PORT, K2_PIN, PORT_MUX_AS_GPIO);
  63. GPIO_DRV_SetMuxModeSel(K3_PORT, K3_PIN, PORT_MUX_AS_GPIO);
  64. GPIO_DRV_SetPinDirection(LED1_GPIO, LED1_PIN, 1); /*设置GPIO为输出*/
  65. //GPIO_DRV_SetPinDirection(LED2_GPIO, LED2_PIN, 1);
  66. GPIO_DRV_SetPinDirection(LED3_GPIO, LED3_PIN, 1); /*设置GPIO为输出*/
  67. GPIO_DRV_SetPinDirection(LED4_GPIO, LED4_PIN, 1);
  68. GPIO_DRV_SetPinDirection(K0_GPIO, K0_PIN, 1);
  69. GPIO_DRV_SetPinDirection(K1_GPIO, K1_PIN, 1);
  70. GPIO_DRV_SetPinDirection(K2_GPIO, K2_PIN, 1);
  71. GPIO_DRV_SetPinDirection(K3_GPIO, K3_PIN, 1);
  72. /*上电默认LED关闭*/
  73. LED1_OFF;
  74. //LED2_OFF;
  75. LED3_OFF;
  76. LED4_OFF;
  77. K0_OFF;
  78. K1_OFF;
  79. K2_OFF;
  80. K3_OFF;
  81. }
  82. /*!
  83. * @brief 初始化按键引脚
  84. *
  85. * @param none
  86. * @return none
  87. */
  88. void GPIO_KeyInit(void)
  89. {
  90. /*初始化引脚功能,有部分引脚上电默认为非GPIO,必须选择其功能为GPIO才能作为GPIO使用*/
  91. GPIO_DRV_SetMuxModeSel(KEY3_PORT, KEY3_PIN, PORT_MUX_AS_GPIO); /*功能复用选择*/
  92. //GPIO_DRV_SetMuxModeSel(KEY4_PORT, KEY4_PIN, PORT_MUX_AS_GPIO);
  93. GPIO_DRV_SetPinDirection(KEY3_GPIO, KEY3_PIN, 0); /*设置按键引脚为输入*/
  94. //GPIO_DRV_SetPinDirection(KEY4_GPIO, KEY4_PIN, 0);
  95. //GPIO_DRV_SetPullSel(KEY3_PORT, KEY3_PIN, PORT_INTERNAL_PULL_UP_ENABLED); /*使能按键引脚的上拉*/
  96. //GPIO_DRV_SetPullSel(KEY4_PORT, KEY4_PIN, PORT_INTERNAL_PULL_UP_ENABLED);
  97. }
  98. /*!
  99. * @brief GPIO配置
  100. *
  101. * @param none
  102. *
  103. * @return none
  104. */
  105. void GPIO_Init(void)
  106. {
  107. GPIO_LedInit();
  108. GPIO_KeyInit();
  109. }
  110. void Trigger_VoiceOn(uint8_t voice_id)
  111. {
  112. if(voice_id > 3){
  113. return ;
  114. }
  115. if(VOICE_ID_0 == voice_id){
  116. K0_ON;
  117. }else if(VOICE_ID_1 == voice_id){
  118. K1_ON;
  119. }else if(VOICE_ID_2 == voice_id){
  120. K2_ON;
  121. }else if(VOICE_ID_3 == voice_id){
  122. K3_ON;
  123. }
  124. }
  125. void Trigger_VoiceOff()
  126. {
  127. K0_OFF;
  128. K1_OFF;
  129. K2_OFF;
  130. K3_OFF;
  131. }
  132. /* ====================================== Functions define ======================================== */
  133. /* ============================================= EOF ============================================== */