因为最初没有看到NXP的一个纠错文件,所以把P0.16设置为外部中断0,这么一个简单的问题弄了很长时间,真的是非常的痛苦,在此写下来,也让同行有机会可以参考一下,虽然我现在还是不能够完全的把握,可总之是我现在的项目能用了,此项目中,我只开外部中断EINT0,另外几个外部中断不用。
首先要把的就是LPC_2212_2214_err.pdf这个文件关于EINT1的部分看明白,在此部分中,有个例子,如下:
VPBDIV=0;
EXTMODE=0x01;
VPBDIV=1;
VPBDIV=0;
EXTPOLAR=0x01;
VPBDIV=0x01;
VPBDIV=0;
但是我按这个还是不能中断,到现在还不知道原因,希望有知道的朋友告诉我,我是做了如下设置才可以。
VPBDIV=0;
EXTMODE=0x03;
VPBDIV=1;
VPBDIV=0;
EXTPOLAR=0x03;
VPBDIV=0x01;
//VPBDIV=0;
把EINT1的也设置要上升沿中断,则就可以了,当然EINT1的引脚不要设置,中断也不用设置,这样才能够满足要求
看纠错文件夹0x01,0x0d会设置为0x00,所以只能是设置这两个值以外的值,当然别的我没有试。
在此要说的主要就是,如果调试总是不成功的情况下,要先看看其ERRATA DATASHEET,这样会省去不少时间。
关键字:LPC2214芯片 外部中断0
引用地址:
LPC2214芯片的外部中断0应用
推荐阅读最新更新时间:2024-03-16 15:05
Cortex-M3学习日志(三)-- 外部中断0
LPC1768微处理器包括4个外部中断,分别是EINT0、EINT1、EINT2、EINT3对应的引脚分别是P2.10~P2.13,这几个引脚也可以作为通用IO口使用。名个外部中断可以设置成低电平/高电平或上升沿/ 寄存器名称 描述 功能 默认值 EXTINT 外部中断标志寄存器 设置或查看中断标志 0x00 EXTMODE 外部中断模式寄存器 设置电平触发或边沿触发 0x00 EXTPOLAR 外部中断极性寄存器 设置为高/低电平或上升/下降沿触发 0x00 PINSEL4 引脚功能选择寄存器 选择P2引脚的功能 0x00 因为实验选用中断方式而非查询方式来测试中断,因中P2.10口接有一个
[单片机]
ARM7系列LPC2214芯片的调试报告
摘要:本文的主要内容是关于PHILIP公司ARM7系列LPC2214芯片的调试报告,以及在其基础上的网络通信程序设计的调试报告和KEIL公司的开源RTL操作系统下TCPNET不开源协议栈的工作报告;在具体论述我的调试过程的时候,我会把我查询的一些我认为正确的资料附在合适的位置,以供参考。 LPC2214启动代码部分 启动代码-汇编代码--做c语言的准备工作。包括向量表定义,堆栈初始化,系统变量初始化,中断系统初始化,i/o初始化,外围初始化,地址重映射等操作。 在开始之前我建议首先把ARM的指令系统熟悉一遍,然后结合启动代码熟悉指令的含义和具体操作,尤其需要的是要比较明确的知道startup.s文件中的伪指令的含义,这
[单片机]
C51 用一个外部中断0检测过零脉冲,并产生脉冲
用一个外部中断0检测过零脉冲,然后用一个定时器产生一个脉冲即可。 #include reg52.h #define uint unsigned int /*宏定义*/ #define uchar unsigned char /*宏定义*/ //#define Time_5ms (0x10000-5000) //fosc=12M #define Time_100us (0x10000-100) sbit P2_0=P2^0; uint Time_5ms=10000; void time_initial(); void main() { P2_0=0; time_initial(); while(
[单片机]