rt-thread-official/bsp/renesas/ra6m4-iot/ra/board/ra6m4_iot/board_keys.c

107 lines
5.1 KiB
C

/***********************************************************************************************************************
* Copyright [2020] Renesas Electronics Corporation and/or its licensors. All Rights Reserved.
*
* This file is part of Renesas RA Flexible Software Package (FSP)
*
* The contents of this file (the "contents") are proprietary and confidential to Renesas Electronics Corporation
* and/or its licensors ("Renesas") and subject to statutory and contractual protections.
*
* This file is subject to a Renesas FSP license agreement. Unless otherwise agreed in an FSP license agreement with
* Renesas: 1) you may not use, copy, modify, distribute, display, or perform the contents; 2) you may not use any name
* or mark of Renesas for advertising or publicity purposes or in connection with your use of the contents; 3) RENESAS
* MAKES NO WARRANTY OR REPRESENTATIONS ABOUT THE SUITABILITY OF THE CONTENTS FOR ANY PURPOSE; THE CONTENTS ARE PROVIDED
* "AS IS" WITHOUT ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
* PARTICULAR PURPOSE, AND NON-INFRINGEMENT; AND 4) RENESAS SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL, OR
* CONSEQUENTIAL DAMAGES, INCLUDING DAMAGES RESULTING FROM LOSS OF USE, DATA, OR PROJECTS, WHETHER IN AN ACTION OF
* CONTRACT OR TORT, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE CONTENTS. Third-party contents
* included in this file may be subject to different terms.
**********************************************************************************************************************/
/***********************************************************************************************************************
* File Name : board_keys.c
* Description : This module has information about the keys on this board.
**********************************************************************************************************************/
/*******************************************************************************************************************//**
* @addtogroup BSP_RA6M4_IOT_KEYS
*
* @{
**********************************************************************************************************************/
/***********************************************************************************************************************
* Includes
**********************************************************************************************************************/
#include "bsp_api.h"
#if defined(BOARD_RA6M4_IOT)
/***********************************************************************************************************************
* Macro definitions
**********************************************************************************************************************/
/***********************************************************************************************************************
* Typedef definitions
**********************************************************************************************************************/
/***********************************************************************************************************************
* Private global variables and functions
**********************************************************************************************************************/
/** Array of KEY IOPORT pins. */
static const uint16_t g_bsp_prv_keys[] =
{
(uint16_t) BSP_IO_PORT_00_PIN_01, ///< USER KEY1
(uint16_t) BSP_IO_PORT_00_PIN_02, ///< USER KEY2
};
/***********************************************************************************************************************
* Exported global variables (to be accessed by other files)
**********************************************************************************************************************/
/** Structure with KEY information for this board. */
const bsp_keys_t g_bsp_keys =
{
.key_count = (uint16_t) ((sizeof(g_bsp_prv_keys) / sizeof(g_bsp_prv_keys[0]))),
.p_keys = &g_bsp_prv_keys[0]
};
extern bsp_leds_t g_bsp_leds;
void key_sample (void)
{
#if BSP_TZ_SECURE_BUILD
/* Enter non-secure code */
R_BSP_NonSecureEnter();
#endif
bsp_leds_t leds = g_bsp_leds;
bsp_keys_t keys = g_bsp_keys;
uint32_t key1_pin=keys.p_keys[BSP_KEY_KEY1];
uint32_t key2_pin=keys.p_keys[BSP_KEY_KEY2];
uint32_t led_pin =leds.p_leds[BSP_LED_LED1];
while (1)
{
R_BSP_PinAccessEnable();
if ( R_BSP_PinRead((bsp_io_port_pin_t)key1_pin)==BSP_IO_LEVEL_LOW)
{
R_BSP_PinWrite((bsp_io_port_pin_t) led_pin,BSP_IO_LEVEL_LOW);
}
if ( R_BSP_PinRead((bsp_io_port_pin_t)key2_pin)==BSP_IO_LEVEL_LOW)
{
R_BSP_PinWrite((bsp_io_port_pin_t) led_pin, BSP_IO_LEVEL_HIGH);
}
R_BSP_PinAccessDisable();
}
}
/***********************************************************************************************************************
* Exported global variables (to be accessed by other files)
**********************************************************************************************************************/
#endif
/** @} (end addtogroup BOARD_RA6M4_RENESAS_IOT_KEYS) */