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

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

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

#include <NXP/iolpc2148.h>
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--);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值