at91rm9200的io口电平中断简单理解

AT91SAM7S64入门笔记----中断实验(3) <br />        刚刚调了AT91SAM7S64的外部中断,其实只要掌握中断的基本原理,不同中断的处理都是同样的道理,在这个实验中对FIQ,IRQ0,IRQ1进行调试,通过LED来显示程序执行情况.<br />   <br />         以下代码我已经在AT91SAM7S64最小系统板调试通过.<br />//功能:外部中断测试 //作者:czleclub #include<at91sam7s64.h> #include "Mini_Board.h" #include "del 阅读详情
 对于PQFP封装的9200的PIOA、PIOB和PIOC三组32*3=64个io口,他们的io中断有这样的特性【在9200文档上有详细介绍】PIO的中断AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL和AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE都是电平中断,对于PIO来说没有区别,在PIO中断处理函数里边通过检测发生io中断的相应io引脚输入值为0还是为1,来判断是高电平中断还是低电平中断,PIO的PIO_IER使能的相应io口线上输入变化中断--注意是变化中断,所以对于io电平中断也必须存在电平变化之后才能被9200捕获到,也才能引发中断,执行中断处理函数,io口线上无电平变化也就无电平中断会被触法,这和51单片机的io电平中断机制不同,51单片机当启用外部电平中断之后,51处理器每个clk都会检测io的电平,如果符合中断电平,那么立即触发电平中断,所以对于51单片机,只要io口上的电平为中断电平值,那么就会不断的触法51的中断处理程序,直到io口电平变为非中断电平值51处理器才会停止触法中断,9200即便配置io为电平中断,但是也需要io线上只有发上了电平变化,9200才会触法电平变化中断,至于这个变化中断最终是变为了低电平还是变为了高电平,那么需要在处理程序中读取io值才可以进一步判断,不过如果存在其他irq中断屏蔽I时间比较长,同时io电平中断变化持续时间又比较短,那么很可能出现,到执行io电平中断处理程序时,读取到的io口数据已经不是引发中断的电平值了,所以io电平中断不是很好用,可以使用AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED双边沿中断或者AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE上升沿中断来完成,对于io口最好使用AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE上升沿中断机制,这不会出现误数据,最坏仅仅是可能会丢掉后面的1~2个上升沿[gliethttp_20080104]

以PIOB的PB0为例:
#define LEVEL_IRQ_PIN    (0x01<< 0)
AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC,((unsignedint)1<<AT91C_ID_PIOB));//先要使能PIOB的控制器时钟
AT91F_PIO_CfgInput( AT91C_BASE_PIOB, LEVEL_IRQ_PIN);//将PB0配置为input输入
AT91F_AIC_ConfigureIt(AT91C_BASE_AIC,
                     AT91C_ID_PIOB,
                     1,
                     AT91C_AIC_SRCTYPE_EXT_POSITIVE_EDGE,
                     //AT91C_AIC_SRCTYPE_INT_EDGE_TRIGGERED,//双边沿
                     //AT91C_AIC_SRCTYPE_EXT_HIGH_LEVEL,
                     //AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,//
                     (void(*)(void))piob_interrupt_proc);
{volatile dummy;dummy= AT91C_BASE_PIOB->PIO_ISR;}
AT91F_PIO_InterruptEnable(AT91C_BASE_PIOB,LEVEL_IRQ_PIN);//使能PB0变化中断
{volatile dummy;dummy= AT91C_BASE_PIOB->PIO_ISR;}
AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_PIOB);//使能PIOB控制器中断
以上就完成了PB0的上升沿中断启动,来看看中断处理函数[ads1.2]
void __irq piob_interrupt_proc(void)
{
    {volatile dummy;dummy= AT91C_BASE_PIOB->PIO_ISR;}
    AT91C_BASE_AIC->AIC_EOICR= 0;
    if(AT91F_PIO_GetInput(AT91C_BASE_PIOB)& LEVEL_IRQ_PIN)
    {
        //...1电平
    }else
        {
            //...0电平
        }
}
AT91RM9200 中断控制器详解(AIC) 本文详细的介绍的AT91RM9200中断控制器的使用 立即下载

相关推荐

YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip

附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。

AT91SAM7SE应用 -- PIT 周期中断(1ms)

最近在使用 ATMEL 的AT91SAM7SE256 来处理FPGA 输出的数据,然后再把数据发送到PC机端。既利用了FPGA 高速数字信号处理的优势,又发挥了ARM处理器对控制类信号的简洁处理。。 在使用的过程中,感觉AT91SAM7SE256的资料比较少,所以在这里我把自己测试过的代码放上来,提供下载。。开发环境如下所示: IDE-Version:μVision V4.23.00.0Copyr...

weixin_34228662的博客 331

Unity新手必看:5分钟搞定TextMeshPro中文乱码,告别小方块(附7000+常用字库)

本文详细介绍了Unity中TextMeshPro中文乱码问题的解决方案,包括快速生成中文字体的步骤和优化技巧。通过使用支持中文的.ttf字体文件和自定义字符集,开发者可以在5分钟内解决TMP显示小方块的问题,提升游戏或应用的文本显示效果。

weixin_33095355的博客 362

基于OHCI的USB主机 —— 寄存器(初始化)

硬件初始化的操作比较简单,主要代码从例程《AT91RM9200-BasicUHP》中抄过来,另外增加了中断向量初始化的部分。 在AM9200中,USB的中断是基于AIC中断的,因此要设置对应的AIC中断。在此之前要设置OHCI的中断寄存器,代码如下: /**  * USB主机初始化  * @return 0 - 成功  */ short...

weixin_34133829的博客 257

Calibre电子书阅读器个性化样式定制指南

本文详细介绍了如何通过Calibre电子书阅读器的用户样式表功能进行深度个性化样式定制。从修改全局字体、行距、背景配色(包括深色/浅色模式)到美化代码块、引用等特殊元素,本指南提供了完整的CSS代码示例与实战技巧,帮助用户打造专属的舒适阅读环境,显著提升电子书阅读体验。

vv45678的博客 920

【计算机组成原理实验】状态机实验

理解“状态机”概念,掌握“状态机”思想描述时序系统。通过下列三种基于D触发器的计数器结构,构建状态机的状态转移电路:环形计数器、扭环计数器和条件判断的扭环计数器。基于“状态机”原理,设计一个“交通灯”系统:控制红黄绿信号灯按照以下顺序循环点亮:“绿 黄 红 绿 ……”,红灯、绿灯和黄灯的亮灯持续时间可以通过拨码开关独立设置。红灯和绿灯是持续亮灯模式,黄灯则是闪烁亮灯模式。

Rover_jb的博客 1332

基于ATMEL AT91RM9200的嵌入式Linux移植笔记

 前面利用开发板带的现成的东西step by step让Linux 2.4.19在开发板上跑起来了,对于开发的流程也有了一定的认识。现在想对每一步进行详细深入的探讨,好好学习一下,把笔记记录下来,省得忘记了。有些内容是从看过的书中摘要过来的,大部分是自己实践后的心得。我想记得详细点,也好为后面总结打好基础。先谈一下对于嵌入式开发流程和嵌入式开发环境拓扑结构的认识。刚开始比较盲目,看得书

menuconfig的专栏 1959

RDM协议控制端实战:从数据包构造到高效设备发现算法

本文深入探讨了RDM协议控制端的核心开发流程,涵盖从数据包构造、发送到响应解析的全过程。重点解析了如何利用二分搜寻算法高效实现网络设备发现,并分享了组包、解包中的关键代码实现与常见调试技巧,为舞台灯光与智能硬件领域的嵌入式开发提供实战指导。

week9的博客 457

signature=b59098372cef6f44088fc44b18178ccd,yarn.lock · codeveryday/phaser-ce_wechat - Gitee.com

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.# yarn lockfile v1"@babel/parser@^7.4.4":version "7.7.7"resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.7.tgz#1b886595...

weixin_36309562的博客 3万+

ROS下UR+Realsense相机进行手眼标定

手眼标定主要是用来确定相机坐标系和机械臂坐标系之间的转换关系,从而实现后续的抓取等任务。

weixin_42157689的博客 7569

secureCRT 破解方法

3、输入注册信息打开keygen.exe,点击path,选择SecureCRT的安装目录(例如D:\VanDykeSoftware\Clients)的securecrt.exe打开,继续下一步打开LicenseHelper.exe,如下。1、注册SecureCRT9.1打开keygen.exe,出现以下问题(没有关掉安全防护,一双击打开,Windows会自动识别keygen.exe为bingdu并删除)打开桌面SecureCRT,此界面不输入内容,直接点击下一步。2、存储配置文件夹(可以默认安装)

逆水行舟 1万+

php服务不可用,ThinkPHP/Library/Vendor/Tcpdf/fonts/uni2cid_ak12.php · 白俊遥/thinkphp-bjyadmin - Gitee.com...

// unicode to cid conversion table is from// ftp://ftp.oreilly.com/pub/examples/nutshell/cjkv/adobe/// cid2code.txt in ak12.tar.Z$cidinfo['uni2cid'] = array(32=>1,33=>2,34=>3,35=>4,36=>...

weixin_39630441的博客 127万+

1 四种防反接电路——multisim仿真

摘要:防反接电路可防止电源反接损坏器件,主要有四种方案:1)二极管串联(低成本,适用小电流);2)整流桥(无极性输入,但效率低);3)保险丝+稳压管(低损耗但需更换);4)MOS管方案(大电流、高效率,主流选择)。选型需考虑电流、压降和成本,MOS管因其低导通电阻(毫欧级)成为大电流应用的首选。口诀:"小电流二极管,大电流用MOS"可快速指导设计。

XU157303764的博客 1568

signature=a03bac2e2b77cb93fe696b344bcbb9d0,Update Less Mixin section for Gradients

e7efd81 .gitignore: Remove obsolete files.64ca888 Merge pull request #15999 from twbs/kkirsche-includeTestsReadmeba2f7e9 [Fixes #15951] Document JS test suite basics01aa0d8 Merge pull request #16007 f...

weixin_39930671的博客 1万+

使用 Simulink + Simscape Electrical 实现一个变压器耦合式单相全波整流器的仿真模型

本文介绍了基于Simulink的变压器耦合式单相全波整流器建模与仿真方法。详细说明了从项目创建、模块添加、电路搭建到参数配置的完整建模过程,重点分析了整流器的效率与损耗特性,包括变压器损耗和二极管导通损耗。通过仿真展示了输入输出波形特征,并提出了选用高效元件、优化变压器设计等改进建议。该案例为电力电子系统建模提供了实用参考,有助于深入理解整流电路工作原理和性能优化方法。

amy_mhd的博客 186

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

signature=2e90d106edf301deb430a27c17dd9276,firewalla/yarn.lock at master · medicineinmotion/firewall...

# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.# yarn lockfile v1"@types/babel-types@*", "@types/babel-types@^7.0.0":version "7.0.4"resolved "https://registry.yarnpkg.com/@types/babel...

weixin_35409775的博客 2189

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

AT91RM9200的U-BOOT启动烧写过程

Uboot 烧写过程   1.一开始令BMS=1(拔掉跳线),则系统从片内ROM中启动。内部启动程序初始化调试串口和USB设备接口从外部载入启动程序。在Windows平台下,启动超级终端,发送文件loader.bin和u-boot.bin到SDRAM,成功启动u-boot. 2.启动了u-boot后就利用u-boot的功能,发送boot.bin和u-boot.gz到SDRAM,然后再拷贝到F

yuanxuegui2008的专栏 2760

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

at91sam7x256之串口uart0设置之二

<br />搞了两天,at91sam7x256之串口uart0终于搞定了,<br />一开始出现的问题是发送出来的数据不对,但是用串口调试助手给开发板发送数据,然后直接回送没有问题。<br />原因是串口波特率设置不对,我把晶振频率FOSC作为系统主时钟MCK用了,虽然检查半天控制寄存器US_CR和模式寄存器US_MR各个位的值设置都没有问题,也是不行的。<br />看了开发板例程中的board .h头文件,我才知道原来晶振频率FOSC作为系统主时钟MCK不同:<br />#define AT91B_MAI

xjq2003的专栏 4639

基于OHCI的USB主机 —— 中断寄存器初始化

在AM9200中,中断寄存器分为2个层次,一个是用来设置某个功能允许哪些中断产生,另一个是AIC中断寄存器,用来设置是否允许该功能产生中断。当AIC对应的中断产生时,需要读取相应功能的中断状态寄存器,以判断产生中断的具体原因。   对于USB接口,首先需要设置UHP_HcInterruptEnable和UHP_HcInterruptStatus寄存器(关于这两个寄存器的功能,请参见...

weixin_34240657的博客 180

基于AT91SAM7se512的串口通讯的实现

实验室正在研究基于AT91SAM7se512芯片的无人机系统和基于SImulink的无人机飞行仿真平台,主控制芯片与外围传感器的通讯和主控芯片与PC机的通讯是本项目最基本的部分,下面将此段时间对串口通信的认识记录下来,由于本人知识水平的有限,欢迎各位读者积极指正,我将不胜感激。 (一)、硬件部分. 在AT91SAM7se512的串口通信过程中,我使用的是usb转串口线,单一的232串口还是不能

dgxwrj 2072

STM8 IO外部中断设置问题,小心掉坑,STM8坑,外部中断触发电平设置失败,STM8一直不停中断

STM8 IO外部中断设置问题(使用库函数) STM8,掉坑: 程序里面,首先开启了总中断,enableInterrupts(); // 打开总中断 在之后的程序里面,设置打开IO口外部中断,并设置触发电平,代码如下:(坑在这里,注意!!!) GPIO_Init(PORT_BLE_STA, PIN_BLE_STA, GPIO_Mode_In_PU_IT);//上拉,开中...

wzying25的博客 1万+

ARM入门笔记(8)

第八章 中断控制实验 一.背景 实际上ARM的中断与51单片机的中断类似,都有类似的中断入口地址(ARM称异常向量表)。只不过51给两个相互的中断入口之间留有足够的空间(如外部中断0的中断入口在03H处,而定时器0的中断入口在0BH处),在这段空间中可以放多条指令,这样在编写中断处理程序时非常灵活。ARM总共有7种中断(或异常)类型,它们的入口分别为00H、04H ┄┄ 1C...

weixin_33725126的博客 146

AT91 GPIO Interrupt

Linux: 2.6.31Processor: AT91SAM9XE There are two types of interrupts you can create for an AT91. An external interrupt or a GPIO interrupt. An external interrupt does not have the addition...

weixin_34332905的博客 216

将VxWorks移植到AT91RM9200处理器之上

将VxWorks移植到AT91RM9200       目  录 目录 0修改记录... 3 1 硬件平台... 3 2 vxWorks映像... 3 3 文件组成说明... 4 4 重要宏定义... 8 5 移植注意事项以及问题... 10 6 调试技巧... 12       0修改记录 序号 修

jackixzj的专栏 2140
上一篇: 上下拉电阻
下一篇: AT91RMM9200的PIO使用与设置
flymachine
博客等级 码龄23年 253粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值