/******************************************************************************* File Name: nm_common.c Summary: This module contains common APIs implementations. Description: This module contains common APIs implementations. *******************************************************************************/ //DOM-IGNORE-BEGIN /******************************************************************************* * Copyright (C) 2021 Microchip Technology Inc. and its subsidiaries. * * Subject to your compliance with these terms, you may use Microchip software * and any derivatives exclusively with Microchip products. It is your * responsibility to comply with third party license terms applicable to your * use of third party software (including open source software) that may * accompany Microchip software. * * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A * PARTICULAR PURPOSE. * * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN * ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY, * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. *******************************************************************************/ #include "nm_common.h" #include "timer.h" #include "BoardCfg.h" //#include "wdrv_winc_common.h" //#include "wdrv_winc_gpio.h" void __ISR(_EXTERNAL_0_VECTOR , ipl3) chip_isr(void) //static void chip_isr(void) { //JFM WINC LOW LEVEL //JFM à valider si ça fuck pas la patente vu qu'on est en interrupt... //m2m_wifi_handle_events(); IFS0bits.INT0IF = 0; } /*! * @fn nm_sleep * @brief Sleep in units of mSec * @param[IN] u32TimeMsec * Time in milliseconds */ void nm_sleep(uint32_t u32TimeMsec) { Sleep(u32TimeMsec); } /*! * @fn nm_reset * @brief Reset NMC3400 SoC by setting CHIP_EN and RESET_N signals low, * CHIP_EN high then RESET_N high */ void nm_reset(void) { //JFM WINC LOW LEVEL WIFI_CHP_EN_PIN = 0; WIFI_CHP_RST_PIN = 0; // Sleep(1); //JFM Sleep(100); WIFI_CHP_EN_PIN = 1; // Sleep(5); JFM Sleep(150); WIFI_CHP_RST_PIN = 1; } /* Convert hexchar to value 0-15 */ static uint8_t hexchar_2_val(uint8_t ch) { ch -= 0x30; if (ch <= 9) return ch; ch |= 0x20; ch -= 0x31; if (ch <= 5) return ch + 10; return 0xFF; } /* Convert hexstring to bytes */ int8_t hexstr_2_bytes(uint8_t *pu8Out, uint8_t *pu8In, uint8_t u8SizeOut) { while(u8SizeOut--) { uint8_t u8Out = hexchar_2_val(*pu8In++); if (u8Out > 0xF) return M2M_ERR_INVALID_ARG; *pu8Out = u8Out * 0x10; u8Out = hexchar_2_val(*pu8In++); if (u8Out > 0xF) return M2M_ERR_INVALID_ARG; *pu8Out += u8Out; pu8Out++; } return M2M_SUCCESS; } //DOM-IGNORE-END