⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 掉电唤醒后重设pll实验.c

📁 针对PP2132V1开发的详细的实验教程
💻 C
字号:
/**************************************************************
实验名称:掉电唤醒后重设PLL实验
实验目的:熟悉PLL的使用
实验准备:带中断的程序应该运行在FLASH模式下
实验日期:2008,3,30
作者:    刘启明
***************************************************************/
#include "iolpc2132.h"
#include "inarm.h"
#define  LED1 1 << 18;		/* P1.18控制LED1,低电平点亮 */

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

/***************************************************************
** 函数名称 :main()
** 函数功能 :掉电唤醒后重新连接PLL
** 入口参数 :无。
** 出口参数 :无。
***************************************************************/
void main (void)
{
	unsigned int i;
	
	PINSEL1 = 0x00000001;				// P0.16连接EINT0
	IO1DIR  = LED1;					// 设置LED1控制口为输出,其余输入
	
	EXTWAKE        = 0x01;				// 外部中断0唤醒芯片
	EXTINT         = 0x01;				// 清除EINT0中断标志
	
	/* 掉电前闪烁10次,注意闪烁频率 */
	for (i=0; i<10; i++)
	{
		IO1SET = LED1;
		DelayNS(20);
		IO1CLR = LED1;
		DelayNS(20);
	}
	PCONP = 0x00;						// 关闭定时器、RTC、UART等功能部件
	PCON  = 0x02;						// 系统进入掉电模式
	
	/* 按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;						// 发送PLL馈送序列
        PLLFEED = 0x55;
*/
	/* 重设定PLL-- 结束 */

	/* 唤醒后前闪烁10次,注意闪烁频率 */
	for (i=0; i<10; i++)
	{
		IO1SET = LED1;
		DelayNS(20);
		IO1CLR = LED1;
		DelayNS(20);
	}

	while (1);

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -