龙芯1B:按键外部中断例程

目录


前言

一、什么是外部中断?

1.外部中断:单片机实时地处理外部事件的一种内部机制。

二、外部中断程序开发步骤

1.步骤

2.函数介绍

GPIO中断API函数介绍:

​编辑

3.外部中断代码

总结


前言

up主的联系方式:

微信公众号:嵌入式up

大家好!大家点点关注,大家的关注才是我持续更新的动力!


一、什么是外部中断?

1.外部中断:单片机实时地处理外部事件的一种内部机制。

LS1B0200 处理器的中断可以分为软中断(软中断 0 和软中断 1)、外设中断(INT0,INT1, INT2 和 INT3 四个中断控制总线)、Mips 性能中断和 Mips 计数中断四类。INT0,INT1,INT2 和 INT3 四个中断控制总线连接到 CPU,其中 INT0 和 INT1 负责内部 64 个中断源,INT2 和 INT3 负责外部 61 个 GPIO 中断源。没有中断优先级,中断控制器结构如图 所示。

f3673c1a0f4c48ce86857a8e15ca55dd.png

 所有中断寄存器的位域排列顺序相同,一个中断源对应其中一位,LS1B0200 处理器的 中断控制器内外中断源位域排列顺序如表 5-1 所示。注意:没有 GPIO31 引脚,所以没有 GPIO31 中断源

龙芯中断控制器详细资料下载链接:

二、外部中断程序开发步骤

1.步骤

1.安装项目向导,新建项目工程

2.在建好的工程里的main.c文件中添加ls1b_gpio.h并调用gpio_enable函数初始化GPIO

3.调用ls1x_disable_gpio_interrupt()函数使能GPIO

4.调用ls1x_install_gpio_isr()函数配置中断

5.建立中断回调函数

6.调用ls1x_disable_gpio_interrupt()函数使能中断

2.函数介绍

GPIO中断API函数介绍:

f151e1541cba41a08ceaa40482f20486.png

附按键图:

1ee6f1187a7e47fbb79059948444fc7d.png

3.外部中断代码

#include <stdio.h>

#include "ls1b.h"
#include "mips.h"

//-------------------------------------------------------------------------------------------------
// BSP
//-------------------------------------------------------------------------------------------------

#include "bsp.h"
#include "ls1b_gpio.h"
#include "stdbool.h"
//-------------------------------------------------------------------------------------------------
// 主程序
//-------------------------------------------------------------------------------------------------
bool falg = false;

void gpio_interrput_isr(int vector, void *param)
{
    falg = !falg;
    if(falg) gpio_write(55, 0);
    else pio_write(55, 1);
}

int main(void)
{
    printk("\r\nmain() function.\r\n");
    gpio_enable(55,DIR_OUT);
    
    ls1x_disable_gpio_interrupt(0);
    ls1x_install_gpio_isr(0,INT_TRIG_EDGE_UP,gpio_interrput_isr,NULL);//上升沿触发 gpio 中断
    ls1x_enable_gpio_interrupt(0);
    /*
     * 裸机主循环
     */
    for (;;)
    {
    }
    
    return 0;
}

/*
 * @@ End
 */

总结

源码链接:(1条消息) 龙芯1B:中断使用例程-嵌入式文档类资源-优快云文库

中断文档链接:(2条消息) 龙芯1B中断控制器详细资料-嵌入式文档类资源-优快云文库

(2条消息) 龙芯1B:中断详细说明-嵌入式文档类资源-优快云文库


联系我们

        vx ——>  buildupup     公众号   嵌入式up   如果文章对您有帮助,请打赏一元呗,感谢支持,分享不易,码字不易。希望对大家帮助!


时光不回头,当下才重要。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

嵌入式up

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值