网站公告列表     本站开通全国范围代收货款业务,详情请点击  [dycxin  2008年5月14日]        
加入收藏
设为首页
联系站长
您现在的位置: EDA加油站 >> ARM专栏 >> ARM工具DIY >> 开发板DIY >> 正文
  [推荐]ARM开发之PLL中断实验(LPC213X)           ★★★ 【字体:
ARM开发之PLL中断实验(LPC213X)
ARM开发之PLL中断实验(LPC213X)
作者:佚名    ARM专栏来源:不详    点击数:    更新时间:2007-12-4    

/********************************************************************************************
* 文 件 名:PLL_Interrupt.c
* 功    能:采用中断方式打开PLL,当PLL锁定成功后,蜂鸣器蜂鸣一声。
* 注    意:设置锁相环操作方法:
*           1、在PLLCFG中设置倍频系数M和分频系数P的值;
*           2、设置PLLCON,使能PLL(这一步和(1)可以互换);
*           3、发送PLL馈送序列;
*           4、等待PLL锁定(查询等待或中断方式)
*           5、设置PLLCON,使能和连接PLL;
*           6、发送PLL馈送序列;
*           7、禁止PLL中断(若采用中断方式的话)。
* 说    明:用跳线帽短接P0.7和BEEP。
*********************************************************************************************/
#include "config.h"

#define   BEEPCON      ((uint32)0x01<<7)  // P0.7引脚控制蜂鸣器,低电平蜂鸣
#define   BEEP_ON()    IO0CLR=BEEPCON     // P0.7引脚输出低电平,蜂鸣器蜂鸣
#define   BEEP_OFF()   IO0SET=BEEPCON     // P0.7引脚输出高电平,蜂鸣器不蜂鸣

/********************************************************************************************
* 函数名称:Delay()
* 功    能:软件延时
* 入口参数:count    延时参数,值越大,延时越长
* 出口参数:无
*********************************************************************************************/
void Delay(uint32 count)
{
  uint32 i;
 
  for(;count>0;count--)
     for(i=0;i<50000;i++);
}

/********************************************************************************************
* 函数名称:PLL_Int()
* 功    能:在中断中打开PLL,蜂鸣器蜂鸣一声
* 入口参数:无
* 出口参数:无
*********************************************************************************************/
void __irq PLL_Int(void)
{
  PLLCON=3;                               // PLL使能和连接
 
  PLLFEED=0xAA;                           // 发送PLL馈送序列
  PLLFEED=0x55;
 
  /* 蜂鸣器蜂鸣一声 */
  BEEP_ON();
  Delay(100);
  BEEP_OFF();
 
  VICIntEnClr=1<<12;                      // 禁止PLL中断
  VICVectAddr=0;                          // 向量中断结束
}

/********************************************************************************************
* 函数名称:main()
* 功    能:更改PLL设置,等待PLL中断
*********************************************************************************************/
int main(void)
{
  PINSEL0&=~((uint32)0x03<<14);           // 将P0.7引脚选择为GPIO功能
  IO0DIR|=BEEPCON;                        // 设置P0.7为输出
  BEEP_OFF();                             // 蜂鸣器禁止蜂鸣
 
  PLLCON=1;                               // 使能PLL
  PLLCFG=0x25;                            // 设置M为6,P为2
 
  PLLFEED=0xAA;                           // 发送PLL馈送序列
  PLLFEED=0x55;
  
  IRQEnable();                            // 使能IRQ中断
 
  /* PLL中断初始化 */
  VICIntSelect=0x00000000;                // 设置所有中断分配为IRQ中断
  VICVectCntl0=0x20 | 12;                 // PLL中断分配到IRQ slot0,即最高优先级
  VICVectAddr0=(uint32)PLL_Int;           // 设置中断服务程序地址
  VICIntEnable=1<<12;                     // 使能EINT0中断
  
  while(1);                               // 等待中断 
 
  return 0;
}

ARM专栏录入:dycxin    责任编辑:dycxin 
  • 上一篇ARM专栏:

  • 下一篇ARM专栏:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    ARM开发之ADC实验(LPC213X)
    ARM开发之DAC实验(LPC213X)
    ARM开发之I2C驱动(LPC213X)
    ARM开发之LCM12864点阵图形液…
    ARM开发之GPIO输出实验—8位…
    ARM开发之MAT1.0触发AD转换实…
    ARM开发之P0.16引脚触发AD转…
    ARM开发之PWM输出实验(LPC2…
    ARM开发之PWM作32位定时器实…
    ARM开发之RTC秒定时中断唤醒…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    EDA加油站|我要EDA网|山东电子网--东营市荣燕商贸有限公司版权所有! 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号  鲁ICP备07000091号 鲁ICP备05003434号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处