⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example2.c

📁 jennic jn5139模块使用io引脚作为中断线的代码
💻 C
字号:
/****************************************************************************
 *
 * MODULE:
 *
 * COMPONENT:          $RCSfile: $
 *
 * VERSION:            $Name: $
 *
 * REVISION:           $Revision: $
 *
 * DATED:              $Date: $
 *
 * STATUS:             $State: $
 *
 * AUTHOR:
 *
 * DESCRIPTION:
 *
 * LAST MODIFIED BY:   $Author: $
 *                     $Modtime: $
 *
 ****************************************************************************
 *
 *  (c) Copyright 2005 JENNIC Ltd
 *
 ****************************************************************************/

/****************************************************************************/
/***        Include files                                                 ***/
/****************************************************************************/
#include <jendefs.h>
#include <AppApi.h>
#include <AppHardwareApi.h>

/****************************************************************************/
/***        Macro Definitions                                             ***/
/****************************************************************************/

/****************************************************************************/
/***        Type Definitions                                              ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Function Prototypes                                     ***/
/****************************************************************************/
PRIVATE void vDIOInterruptCallback (uint32 u32Device, uint32 u32ItemBitmap);

/****************************************************************************/
/***        Exported Variables                                            ***/
/****************************************************************************/

/****************************************************************************/
/***        Local Variables                                               ***/
/****************************************************************************/
PRIVATE bool_t bToggle = TRUE;
/****************************************************************************/
/***        Exported Functions                                            ***/
/****************************************************************************/

/****************************************************************************
 *
 * NAME: AppColdStart
 *
 * DESCRIPTION:
 * Entry point for application from boot loader.
 *
 * RETURNS:
 * Never returns.
 *
 ****************************************************************************/
PUBLIC void AppColdStart(void)
{
    u32AppApiInit(NULL, NULL, NULL, NULL, NULL, NULL, NULL);
    u32AHI_Init();

    /* Set SW1(dio9) to input and LED1(dio14) to output */
    vAHI_DioSetDirection(E_AHI_DIO9_INT, 0);
    vAHI_DioSetDirection(0, E_AHI_DIO14_INT);

    /* enable pullups on all inputs/unused pins  */
    vAHI_DioSetPullup(!E_AHI_DIO14_INT, E_AHI_DIO14_INT);

    /* turn LED off */
    vAHI_DioSetOutput(E_AHI_DIO14_INT, 0);

    /* set interrupt for DIO9 to occur on button release - rising edge */
    vAHI_DioInterruptEdge(E_AHI_DIO9_INT, 0);

    /* register interrupt handling function */
    vAHI_SysCtrlRegisterCallback(vDIOInterruptCallback);

    /* enable interrupt for DIO9 */
    vAHI_DioInterruptEnable(E_AHI_DIO9_INT, 0);

    while(TRUE);
}

/****************************************************************************
 *
 * NAME: AppWarmStart
 *
 * DESCRIPTION:
 * Entry point for application from boot loader.
 *
 * RETURNS:
 * Never returns.
 *
 ****************************************************************************/
PUBLIC void AppWarmStart(void)
{
    AppColdStart();
}

/****************************************************************************/
/***        Local Functions                                               ***/
/****************************************************************************/
PRIVATE void vDIOInterruptCallback (uint32 u32Device, uint32 u32ItemBitmap)
{
    /* Check to see if hardware indication was from DIO9 */
    if ((u32Device == E_AHI_DEVICE_SYSCTRL)
        && (u32ItemBitmap & E_AHI_DIO9_INT))
    {
        if(bToggle)
        {
            /* drive DIO14 LOW */
            vAHI_DioSetOutput(0, E_AHI_DIO14_INT);
        }
        else
        {
            /* drive DIO14 HIGH */
            vAHI_DioSetOutput(E_AHI_DIO14_INT, 0);
        }

        bToggle = !bToggle;
    }
}

/****************************************************************************/
/***        END OF FILE                                                   ***/
/****************************************************************************/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -