历史上的今天
返回首页

历史上的今天

今天是:2025年05月14日(星期三)

正在发生

2019年05月14日 | arm7 力天电子lpc2148 PLL实验(二)之 PLL重新设定实验参考程序

2019-05-14 来源:eefocus

此程序是我根据周立功课本里面的程序修改的,


程序设定KEY1连接外部中断0,设置外部中断唤醒掉电CPU. 在掉电前,LED1闪烁10次(注意闪烁频率),然后进入掉电模式。一旦被外部中断唤醒,第一次实验不进行PLL重设定,再次让LED1闪烁10次,观察LED1闪烁频率。第二次实验进行PLL重设定,恢复掉电前的PLL设定,再次观察LED1闪烁的频率。


从实验结果可以看出,如果不进行PLL重设定,唤醒后LED1闪烁频率会比掉电前慢许多;进行PLL重新设定后,唤醒后LED1闪烁频率和掉电前一样。


实验程序如下所示:


#include


typedef unsigned char uint32;


void Delayn(unsigned long n);

void HC595_Init(void);

void WriteByte(unsigned char data);

void Write595(void);


unsigned int HC595_DATA = 0;

#define         SCLK  0x01<<24

#define         MISO  0x01<<5

#define         MOSI  0x01<<6

#define         RCK   0x01<<7


//初始化595接口

void HC595_Init(void)

{

  IO0DIR |= MOSI|RCK; 

  IO1DIR |= SCLK;

  IO1CLR |= SCLK;

  IO0DIR |= RCK;

  

  HC595_DATA = 0xFFFFFFFF;  

  Write595();

}

//写字节

void WriteByte(unsigned char data)

{

  unsigned char i;

  //IO0CLR = RCK;

  for(i=0;i<8;i++)

  {

    if(data&0x01)      IO0SET=MOSI;

    else      IO0CLR=MOSI;

    IO1SET=SCLK;

    data>>=1;

    IO1CLR=SCLK;

  }

  //IO0SET = RCK;

}

//刷新595的数据

void Write595(void)

{

  IO0CLR = RCK;

  WriteByte(HC595_DATA&0xff);

  WriteByte((HC595_DATA&0xff00)>>8);

  WriteByte((HC595_DATA&0xff0000)>>16);

  WriteByte((HC595_DATA&0xff000000)>>24);

  IO0SET = RCK;

}

main()

{

  //初始化74HC595

  HC595_Init();

  

  uint32 i;

  PINSEL1=0x00000001;  //P0.16连接EINT0

  PINSEL2=PINSEL2&(~0x08);//P1[25:16]连接GPIO

  IO1DIR |= SCLK;     //P.18控制LED1,低电平点亮(设置LED1控制口为输出,其余I/O为输入)

  EXTWAKE=0x01;    //外部中断0唤醒芯片

  EXTINT=0x01;     //清除EINT0中断标志

//掉电前闪烁10次,注意闪烁频率

 for(i=0;i<10;i++)

 {

   //IO1SET=1<<18;   //LED1亮

   HC595_DATA &=~(1<<18);

   Write595(); 

   Delayn(2500000);

   //IO1CLR=1<<18;   //LED1灭

   HC595_DATA |=(1<<18);

   Write595();

   Delayn(2500000);

 }

  PCONP=0x00;    //关闭定时器,RTC和UART等功能部件

  PCON=0x03;     //系统进入掉电模式

  

  //摁KEY1键唤醒CPU

  //实验分两次进行,第一次不进行PLL重新设定,观察掉电前和唤醒后LED1的闪烁频率;

  //第二次加上PLL重设定,再次观察掉电前和唤醒后LED1闪烁频率

  

  /*重新设定PLL——开始*/

 /* PLLCON=1;  //使能PLL

  PLLCFG=0x23; //设置M为4,P为2,和掉电前一样

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

  PLLFEED=0x55;

  while((PLLSTAT&(1<<10))==0); //等待PLL锁定

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

  PLLFEED=0xaa;

  PLLFEED=0x55;

 */

  /*重新设定PLL--结束*/

  //唤醒后闪烁10次,注意闪烁频率

  for(i=0;i<10;i++)

  {

    //IO1SET=1<<18;

    HC595_DATA &=~(1<<18);

    Write595(); 

    Delayn(250000);

    //IO1CLR=1<<18;

    HC595_DATA |=(1<<18);

    Write595();

    Delayn(250000); 

  }

  while(1);

}

//延时周期数

void Delayn(unsigned long n)

{

  while(n--);

}


推荐阅读

史海拾趣

Design Gateway公司的发展小趣事

随着Gateway业务的不断发展,公司开始寻求更多的市场曝光。1987年,Gateway在《Computer Shopper》杂志上投放了一版独特的广告,吸引了众多消费者的目光。1991年,公司推出了彰显其牧场起家背景的别具一格的奶牛花斑盒状商标,这一创新举措获得了全国消费者的认可,进一步提升了Gateway的品牌知名度和市场地位。

(请注意,由于篇幅限制,以上两个故事为简化版。在实际写作中,可以进一步扩展每个故事,包括更详细的背景信息、人物对话、市场反应等。)

由于篇幅所限,这里只提供了两个故事概要。如果需要更多关于Gateway或其他电子公司的发展故事,可以进一步研究和撰写。

FlexiPanel公司的发展小趣事

FlexiPanel自成立以来,便深知技术创新对于企业发展的重要性。公司投入大量资源于RF模块的研发,特别是在蓝牙和ZigBee/IEEE802.15.4等无线通信技术领域取得了显著成果。通过不断优化模块性能、提升集成度,FlexiPanel成功推出了多款具有行业领先地位的产品,吸引了众多OEM厂商的关注。这些创新产品不仅满足了市场对于高性能、低功耗、易集成的RF模块需求,还帮助FlexiPanel在竞争激烈的电子市场中脱颖而出,实现了市场份额的快速增长。

Anderson Power Products公司的发展小趣事

FlexiPanel深知研发投入是企业持续发展的动力源泉。因此,公司每年都将大量资金用于技术研发和创新项目的实施。通过不断投入研发,FlexiPanel在RF模块领域取得了多项专利和技术突破,推动了整个行业的产业升级和技术进步。同时,公司还积极参与国际技术交流与合作,引进和吸收国际先进技术和理念,为企业的长远发展奠定了坚实的基础。

Cardinal Components公司的发展小趣事

1986年,Cardinal Components公司正式成立,标志着其在电子行业的起点。初创时期,公司面临着资金短缺、市场竞争激烈等诸多挑战。然而,凭借创始人的远见卓识和团队的共同努力,Cardinal迅速确立了其在宽线晶体和振荡器制造领域的专业地位。公司不断研发新产品,提高产品质量,逐渐赢得了客户的信任和市场的认可。

Econais公司的发展小趣事

Econais公司成立于XXXX年,其创始人是一群在无线通信技术领域拥有深厚背景和丰富经验的工程师。他们看到了物联网(IoT)和机器对机器(M2M)通信的巨大潜力,并希望通过自己的技术,为全球的设备提供高效、稳定的无线连接方案。于是,Econais应运而生,专注于研发超低功耗(ULP)和高性能的无线模块。

AW Industries Inc公司的发展小趣事

随着市场竞争的加剧,AW Industries Inc意识到只有不断创新才能在行业中立足。公司加大了对研发的投入,并成功研发出了一款具有革命性的新型电子元件。这款元件不仅性能卓越,而且成本更低,迅速在市场上占据了主导地位。这一创新成果不仅为公司带来了丰厚的利润,也奠定了其在电子行业的领先地位。

问答坊 | AI 解惑

案例分享:DB SDK应用于酒店操作实用案例

一般酒店预订流程: 第一步:客户在酒店网站注册会员并提交预订信息,网站管理人员在后台手动提取信息; 第二步:网站管理人员将提取后的信息提供给客服人员; 第三部:客服通过电话与客户进行订房信息的确认、行程安排确认 第四步:客服人员 ...…

查看全部问答>

给别人评分是否减少自己的芯币

给别人评分是否减少自己的芯币?…

查看全部问答>

2010年中国安防市场“得渠道者 得天下”

随着2010年上海世博会、广州亚运会两大盛会的相继召开,我国安防市场整体需求呈现出快速增长的势头,这种快速的增长不仅体现在金融、公安等传统的安防领域,在智能建筑、新型社区等新领域对于监控的需求也在急剧增加,我国安防市场呈现出多样化的发 ...…

查看全部问答>

这个单片机程序 要怎么修改

#include unsigned char flag,rcvdat,retval,sumchkm,xorchkm; unsigned char state_machine[11]; void main() {         TMOD=0x20;//设置定时器1为工作方式2         TH1=0xfd;     &n ...…

查看全部问答>

帮我解释一下 德州电子 CC2430 点对点 实例程序

我在网上下载了一个源代码是基于CC2430的zigbee 点对点的实例通信代码,但是看不懂, 能不能帮我解释一下程序的大致框架和实现原理,诸如 hal层 cul层 是实现什么的,程序如何工作的?十分感谢了 TI(德州仪器公司)的CC2430芯片的库函数以及一些 ...…

查看全部问答>

如果数据放在本地,一般用什么方法好

数据量相对比较大,而且相互之间有各种关联查询,放到手机上,一般用什么方法好,还需要加密。…

查看全部问答>

u-boot烧进板子后无法启动是什么原因?

作了一些修改后,把u-boot移植到xsbase270板子上,主要是参考网上Aaron Wong的资料的 http://www.cublog.cn/u/26710/article_68652.html 编译生成了u-boot.bin文件,烧写后启动不了,用minicom无法进入菜单,请问这是什么原因呢?…

查看全部问答>

wince下有没有USB的API函数?

wince下有没有USB的API函数? 如果有,能否把这方面的文档发送到我的邮箱: lh806732@163.com 如果没有难道也是用READ,WRITE那些函数吗? 有这方面的例子就更好了,我将再开一帖给分。我一次最多只能给100分。…

查看全部问答>

老大们帮忙看个问题:U盘过滤驱动的安装(都两天了,快把俺给急疯了)

这两天写了一个U盘的过滤驱动(更准确的说应该是改了一个), 但是我在注册表中添加了相应的项之后,在驱动的列表中发现了它, 但是他的状态是停止的. 但是我不知道怎么来启动他,所说特此来请教各位. 我的注册表的操作是这样的,不知道对不 ...…

查看全部问答>

关于msp430供电电源问题

msp430能否用纽扣电池供电,大概能维持多长时间,请高手赐教!…

查看全部问答>