打印
[DemoCode下载]

MUG51 IO中断操作

[复制链接]
610|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
天灵灵地灵灵|  楼主 | 2022-12-22 18:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
/*---------------------------------------------------------------------------------------------------------*/
/*                                                                                                         */
/* SPDX-License-Identifier: Apache-2.0                                                                     */
/* Copyright(c) 2022 Nuvoton Technology Corp. All rights reserved.                                         */
/*                                                                                                         */
/*---------------------------------------------------------------------------------------------------------*/

//***********************************************************************************************************
//  File Function: MUG51 Pin interrupt demo
//***********************************************************************************************************
#include "MUG51.h"

unsigned char PinIntFlag;
/* IMPORTANT !! This define for printf code only. Disable this define to reduce code size. */
/******************************************************************************
Pin interrupt subroutine.
******************************************************************************/
void PinInterrupt_ISR (void) interrupt 7
{
    _push_(SFRS);

    SFRS = 0;
    switch(PIF)
    {
      case (SET_BIT0): PinIntFlag = SET_BIT0; PIF&=CLR_BIT0; break;
      case (SET_BIT2): PinIntFlag = SET_BIT2; PIF&=CLR_BIT2; break;
      default: break;
    }

    _pop_(SFRS);
}
/******************************************************************************
The main C function.  Program execution starts
here after stack initialization.
******************************************************************************/
void main (void)
{
  /* UART0 initial setting
  ** include uart.c in Library for UART initial setting
  **UART0 define P3.1 TXD multi function setting
  **/
  Enable_P31_UART0_VCOM_115200_printf();
  printf("\n PIT test start!");
//----------------------------------------------------
//  P1.3 set as highlevel trig pin interrupt function
//  otherwise, MCU into idle mode.
//----------------------------------------------------

    MFP_P17_GPIO;
    MFP_P25_GPIO;

    GPIO_SetMode(Port1,BIT7,GPIO_MODE_INPUT);
    GPIO_SetMode(Port2,BIT5,GPIO_MODE_INPUT);
    GPIO_Pull_Enable(Port1,BIT7,PULLUP);
    GPIO_Pull_Enable(Port2,BIT5,PULLDOWN);
    GPIO_EnableInt(PIT0,FALLING,EDGE,Port1,7);
    GPIO_EnableInt(PIT2,HIGH,LEVEL,Port2,5);

    ENABLE_GLOBAL_INTERRUPT;                // global enable bit
    while(1)
    {
      switch(PinIntFlag)
      {
        case (SET_BIT0): printf("\n PIT0 interrupt!"); PinIntFlag&=CLR_BIT0; break;
        case (SET_BIT2): printf("\n PIT2 interrupt!"); PinIntFlag&=CLR_BIT2;break;
        default: break;
      }
    }
}




使用特权

评论回复
沙发
小明的同学| | 2022-12-22 19:38 | 只看该作者
_push_(SFRS);
这是表达什么意思,不是太懂,需要看手册吧。

使用特权

评论回复
板凳
稳稳の幸福| | 2022-12-24 17:24 | 只看该作者
IO中断用的比较多。

使用特权

评论回复
地板
小小蚂蚁举千斤| | 2022-12-30 21:24 | 只看该作者
重要信息处理都在中断中处理,大大提升系统程序的稳健性

使用特权

评论回复
5
玛尼玛尼哄| | 2022-12-31 14:57 | 只看该作者
通用的IO中断功能。

使用特权

评论回复
6
小夏天的大西瓜| | 2023-1-12 15:01 | 只看该作者
一个很简单的IO中断过程

使用特权

评论回复
7
中国龙芯CDX| | 2023-1-12 20:33 | 只看该作者
有中断确实稳定性就高了

使用特权

评论回复
8
AdaMaYun| | 2023-1-13 12:58 | 只看该作者
楼主方便给一下MUG51手册嘛?正好参考一下

使用特权

评论回复
9
天灵灵地灵灵|  楼主 | 2023-1-31 19:44 | 只看该作者
AdaMaYun 发表于 2023-1-13 12:58
楼主方便给一下MUG51手册嘛?正好参考一下

去官网可以下载到还有BSP

使用特权

评论回复
10
jf101| | 2023-2-1 13:59 | 只看该作者
io中断,可以看看

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

167

主题

3341

帖子

13

粉丝