博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AT91SAM7SE应用 - IRQ
阅读量:6127 次
发布时间:2019-06-21

本文共 1938 字,大约阅读时间需要 6 分钟。

最近在使用 ATMEL 的AT91SAM7SE256 来处理FPGA 输出的数据,然后再把数据发送到PC机端。

既利用了FPGA 高速数字信号处理的优势,又发挥了ARM处理器对控制类信号的简洁处理。。

 

在使用的过程中,感觉AT91SAM7SE256的资料比较少,所以在这里我把自己测试过的代码放上来,提供下载。。

开发环境如下所示: 

IDE-Version:

μVision V4.23.00.0
Copyright (C) 2011 ARM Ltd and ARM Germany GmbH. All rights reserved.

Tool Version Numbers:

Toolchain: MDK-ARM Standard Version: 4.23
Toolchain Path: D:\Keil\ARM\BIN40
C Compiler: Armcc.Exe V4.1.0.894
Assembler: Armasm.Exe V4.1.0.894
Linker/Locator: ArmLink.Exe V4.1.0.894
Librarian: ArmAr.Exe V4.1.0.894
Hex Converter: FromElf.Exe V4.1.0.894
CPU DLL: SARM.DLL V4.23
Dialog DLL: DARMATS.DLL V1.20
Target DLL: UL2ARM.DLL V1.67
Dialog DLL: TARMATS.DLL V1.20

 

外部信号上升沿出发的IRQ0中断。

 

irq.h

View Code
#ifndef IRQ_H    #define IRQ_H    #include "AT91SAM7SE512.h"    #include "lib_AT91SAM7SE512.h"    #include "Board.h"    extern uint32 status_irq;    extern __irq void at91_IRQ0_handler(void);    extern void irq0_init(void);#endif

 

irq.c

View Code
#include "irq.h"static uint32 status_irq = 0;//__irq void at91_IRQ0_handler(void)__irq void at91_IRQ0_handler(void){    status_irq++;    AT91F_AIC_ClearIt(AT91C_BASE_AIC, AT91C_ID_IRQ0);    AT91F_AIC_AcknowledgeIt(AT91C_BASE_AIC);}#define IRQ0_INTERRUPT_LEVEL    2void irq0_init(void){    AT91PS_AIC pAic;    // Load System pAic Base address    pAic = AT91C_BASE_AIC;    // First, enable the clock of the PIOB    AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOB);    // open external IRQ0 interrupt    AT91F_PIO_CfgPeriph(AT91C_BASE_PIOB, 1 << 20, 0);    // open external IRQ0 interrupt    AT91F_AIC_ConfigureIt(pAic, AT91C_ID_IRQ0, IRQ0_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_POSITIVE_EDGE, at91_IRQ0_handler);    AT91F_AIC_EnableIt(pAic, AT91C_ID_IRQ0);    AT91F_AIC_Trig(pAic, AT91C_ID_IRQ0);}

 

头文件AT91SAM7SE512.h为μVision V4.23.00.0自带的

头文件 lib_AT91SAM7SE512.h 为 ATMEL提供的一个库文件,里面有一些使用的函数来实现对AT91SAM7SE256 的配置。文件请到这里下载。

转载于:https://www.cnblogs.com/xiangtailiang/archive/2012/08/30/2663251.html

你可能感兴趣的文章
JSONP实现跨域
查看>>
Python基础班---第一部分(基础)---Python基础知识---计算机组成原理
查看>>
虚拟机VMware 9安装苹果MAC OSX 10.8图文教程
查看>>
POJ3694 Network
查看>>
微信小程序开发-框架
查看>>
redo、undo、binlog的区别
查看>>
DropDownList 控制日期控件显示格式
查看>>
RecycleView设置顶部分割线(记录一个坑)
查看>>
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
Cordova 开发环境搭建及创建第一个app
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
dedecms生成文档数据库崩溃 mysql daemon failed to start
查看>>
Linux的50个基本命令
查看>>
Objective-C中创建单例方法的步骤
查看>>
Codeforces 520B:Two Buttons(思维,好题)
查看>>
Jenkins持续集成环境部署
查看>>