Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

115 строки
3.2 KiB

  1. /*******************************************************************************
  2. File Name:
  3. nm_common.c
  4. Summary:
  5. This module contains common APIs implementations.
  6. Description:
  7. This module contains common APIs implementations.
  8. *******************************************************************************/
  9. //DOM-IGNORE-BEGIN
  10. /*******************************************************************************
  11. * Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries.
  12. *
  13. * Subject to your compliance with these terms, you may use Microchip software
  14. * and any derivatives exclusively with Microchip products. It is your
  15. * responsibility to comply with third party license terms applicable to your
  16. * use of third party software (including open source software) that may
  17. * accompany Microchip software.
  18. *
  19. * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
  20. * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
  21. * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
  22. * PARTICULAR PURPOSE.
  23. *
  24. * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
  25. * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
  26. * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
  27. * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
  28. * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
  29. * ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
  30. * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
  31. *******************************************************************************/
  32. #include "nm_common.h"
  33. #include "timer.h"
  34. #include "BoardCfg.h"
  35. //#include "wdrv_winc_common.h"
  36. //#include "wdrv_winc_gpio.h"
  37. void __ISR(_EXTERNAL_0_VECTOR , ipl3) chip_isr(void)
  38. //static void chip_isr(void)
  39. {
  40. //JFM WINC LOW LEVEL
  41. //JFM à valider si ça fuck pas la patente vu qu'on est en interrupt...
  42. //m2m_wifi_handle_events();
  43. IFS0bits.INT0IF = 0;
  44. }
  45. /*!
  46. * @fn nm_sleep
  47. * @brief Sleep in units of mSec
  48. * @param[IN] u32TimeMsec
  49. * Time in milliseconds
  50. */
  51. void nm_sleep(uint32_t u32TimeMsec)
  52. {
  53. Sleep(u32TimeMsec);
  54. }
  55. /*!
  56. * @fn nm_reset
  57. * @brief Reset NMC3400 SoC by setting CHIP_EN and RESET_N signals low,
  58. * CHIP_EN high then RESET_N high
  59. */
  60. void nm_reset(void)
  61. {
  62. //JFM WINC LOW LEVEL
  63. WIFI_CHP_EN_PIN = 0;
  64. WIFI_CHP_RST_PIN = 0;
  65. // Sleep(1); //JFM
  66. Sleep(100);
  67. WIFI_CHP_EN_PIN = 1;
  68. // Sleep(5); JFM
  69. Sleep(150);
  70. WIFI_CHP_RST_PIN = 1;
  71. }
  72. /* Convert hexchar to value 0-15 */
  73. static uint8_t hexchar_2_val(uint8_t ch)
  74. {
  75. ch -= 0x30;
  76. if (ch <= 9)
  77. return ch;
  78. ch |= 0x20;
  79. ch -= 0x31;
  80. if (ch <= 5)
  81. return ch + 10;
  82. return 0xFF;
  83. }
  84. /* Convert hexstring to bytes */
  85. int8_t hexstr_2_bytes(uint8_t *pu8Out, uint8_t *pu8In, uint8_t u8SizeOut)
  86. {
  87. while(u8SizeOut--)
  88. {
  89. uint8_t u8Out = hexchar_2_val(*pu8In++);
  90. if (u8Out > 0xF)
  91. return M2M_ERR_INVALID_ARG;
  92. *pu8Out = u8Out * 0x10;
  93. u8Out = hexchar_2_val(*pu8In++);
  94. if (u8Out > 0xF)
  95. return M2M_ERR_INVALID_ARG;
  96. *pu8Out += u8Out;
  97. pu8Out++;
  98. }
  99. return M2M_SUCCESS;
  100. }
  101. //DOM-IGNORE-END