arm7 lpc2148力天电子 PLL实验(一)之PLL中断实验

2019-05-20来源: eefocus关键字:arm7  lpc2148  PLL中断

实验采用中断方式打开PLL,。添加蜂鸣器用于指示PLL锁定。


当PLL锁定成功后,蜂鸣器蜂鸣一声。实验程序如下所示,我是在IAR下面进行的调试,出现了两个警告,但不影响程序的运行。


#include

typedef unsigned char uint32;

void PLL_INT(void);

void Delayn(unsigned long n);

IRQEnable(void); 


//PLL中断函数

void PLL_INT(void)

{

  PINSEL0=0x00000000;  //设置所有引脚连接GPIO

  IO0DIR_bit.P0_22  = 1;

  

  PLLCON=3;  //PLL使能和连接

  PLLFEED=0xAA; //发送PLL馈送序列

  PLLFEED=0x55;

  

  IO0SET_bit.P0_22=1; //打开BEEP

  Delayn(1000000);      //延时

  IO0CLR_bit.P0_22=1; //关闭BEEP

  Delayn(1000000);      //延时

  

  VICIntEnClear=1<<12;  //禁止PLL_INT中断

  VICVectAddr=0x00;   //向量中断处理结果

}

//IRQ中断

IRQEnable(void)  //使能IRQ中断

{

  VICIntSelect=0x00000000;  //使能所有的通道为IRQ中断

  VICVectCntl0=0x20|12;     //PLL_INT分配到IRQ slot0,即最高优先级

  VICVectAddr=(uint32)PLL_INT; //设置PLL_INT向量地址

  VICIntEnable=1<<12;       //使能PLL_INT中断

}

main(void)

{

  PINSEL0=0x00000000;   //设置引脚连接GPIO功能

  /*配置IO接口*/

  PINSEL0 =1<<22;

  

  PLLCON=1;  //使能PLL

  PLLCFG=0x25; //设置M为6,P为2

  PLLFEED=0xAA; //发送PLL馈送序列

  PLLFEED=0x55;

  

  IRQEnable();   //使能IRQ中断

  PLL_INT();

  

  while(1);

}

//延时函数

void Delayn(unsigned long n)

{

  while(n--);

}



关键字:arm7  lpc2148  PLL中断 编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic462257.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:arm7 力天电子lpc2148 PLL实验(二)之 PLL重新设定实验参考程序
下一篇:串口调试助手出现乱码

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

ARM Development Studio开发工具介绍及各版本区别
Arm Development Studio是市场上最全面的端到端的嵌入式C/C++开发解决方案,专为基于Arm的SoC设计,从微型控制器到自定义多核处理器。与Arm处理器IP一起设计,加速Cortex-M、Cortex-R和Cortex-A处理器的系统设计和软件开发,同时帮你构建强大而高效的产品。 深圳市米尔科技有限公司是ARM公司官方授权全线工具产品代理商, 提供ARM公司原装正版开发工具(包括本产品ADS)的销售服务,以及ARM工具产品的市场推广、产品更新、技术支持和售后服务,ARM ADS的历史版本有 ADT、ADS 、RVDS和DS-5。  功能强大的Arm
发表于 2020-03-31
ARM Development Studio开发工具介绍及各版本区别
什么是ARM中的SP(堆栈)和LR?
编程ARM处理器,您应该首先确定(芯片厂商应该告诉您,ARM不会使芯片使芯片厂商的芯片成为芯片厂商的核心)。然后去arm站,找到那个家族的ARM ARM,找到特定内核的TRM(技术参考手册),包括修正版本(如果供应商提供的)(r2p0表示版本2.0(二点零,2p0)),甚至如果存在较新的转速,请使用与设计中使用的供应商所使用的手册。不是每个核心都支持每个指令或模式,TRM告诉您ARM ARM支持的模式和指令,总结了核心所处的整个处理器系列的功能。请注意,ARM7TDMI不是ARMv7,而是ARMv7 ARM9不是ARMv9。 ARMvNUMBER是家族名称ARM7,ARM11没有v是核心名称。较新的内核具有像Cortex
发表于 2020-03-30
ARM的堆栈学习笔记
以下是我在学习ARM指令中记录的关于堆栈方面的知识:1、寄存器 R13 在 ARM 指令中常用作堆栈指针2、对于 R13 寄存器来说,它对应6个不同的物理寄存器,其中的一个是用户模式与系统模式共用,另外5个物理寄存器对应于其他5种不同的运行模式。采用以下的记号来区分不同的物理寄存器:R13_<mode>其中,mode为以下几种模式之一:usr、fiq、irq、svc、abt、und。3、寄存器R13在ARM指令中常用作堆栈指针,但这只是一种习惯用法,用户也可使用其他的寄存器作为堆栈指针。而在Thumb指令集中,某些指令强制性的要求使用R13作为堆栈指针。由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用
发表于 2020-03-30
ARM9中LDR SP , = 4*1024 / LDR SP , = 0x34000000 的分析
,由于ARM在各种执行模式下都需要设置各自的栈指针,所以"ldr sp,=xxxx"操作较多。根据ARM的ATPCS规则,对栈的操作属于FD(满递减),即栈指针一直指向栈顶元素,是按地址减小的方向增长的,所以一般将SP设置在地址的最高处。ldr sp, =4*1024,  ldr sp, =4*1024, ldr sp, =0x34000000 ,这几个值的确定与硬件关系很大:1.在reset中:ldr sp, =4*1024:在ARM9(S3C2440)中,SRAM有效地址范围为0~4K
发表于 2020-03-30
ARM裸机程序开发17(堆栈寻址)
堆栈是一种数据结构,按先进后出的方式工作。使用一个称作堆栈指针的专用寄存器指示当前的操作位置,堆栈指针总是指向栈顶当堆栈指针指向最后压入堆栈的数据时,称为满堆栈,而当堆栈指针指向下一个将要放入数据的空位置时,称为空堆栈同时又根据堆栈的生成方式,又可分为递增堆栈和递减堆栈,当堆栈由低地址像高地址生成时,称为递增堆栈。当堆栈由高地址向低地址生成时,称为递减堆栈。这样就有4中堆栈的工作方式。◎ Full descending 满递减堆栈——FD 堆栈首部是高地址,堆栈向低地址增长。栈指针总是指向堆栈最后一个元素(最后一个元素是最后压入的数据)。 ARM-Thumb过程调用标准和ARM、Thumb C/C++ 编译器总是使用Full
发表于 2020-03-30
ARM指针寄存器 -程序计数器PC、堆栈指针SP
,如此就实现了后进先出的原则。堆栈是计算机中广泛应用的技术,基于堆栈具有的数据进出LIFO特性,常应用于保存中断断点、保存子程序调用返回点、保存CPU现场数据等,也用于程序间传递参数。ARM处理器中通常将寄存器R13作为堆栈指针(SP)。ARM处理器针对不同的模式,共有 6 个堆栈指针(SP),其中用户模式和系统模式共用一个SP,每种异常模式都有各自专用的R13寄存器(SP)。它们通常指向各模式所对应的专用堆栈,也就是ARM处理器允许用户程序有六个不同的堆栈空间。这些堆栈指针分别为R13、R13_svc、R13_abt、R13_und、R13_irq、R13_fiq,如表2-3    堆栈指针
发表于 2020-03-29
小广播
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved