📄 main.c
字号:
/****************************************Copyright (c)***************************************************
** Guangzou ZLG-MCU Development Co.,LTD.
** graduate school
** http://www.zlgmcu.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**------------------------------------------------------------------------------------------------------
** Modified by: Li Baihua
** Modified date: 2008-04-02
** Version: 1.1
** Descriptions: PLL设置实验
**
*********************************************************************************************************/
#include "config.h"
#define LED (1 << 17) /* P0.17控LED闪烁 */
/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 延时函数
** input parameters: uiDly 延时值
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void DelayNS(uint32 uiDly)
{
uint32 i;
for(; uiDly > 0; uiDly--)
{
for(i=0; i<50000; i++);
}
}
/*********************************************************************************************************
** Function name: PLL_INT
** Descriptions: 中断服务函数
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
void __irq PLLINT (void)
{
PINSEL1 = 0x00000000; /* 设置所有管脚连接GPIO */
IO0DIR = LED; /* 设置LED控制口输出 */
PLLCON = 3; /* PLL使能和连接 */
PLLFEED = 0xAA; /* 发送PLL馈送序列 */
PLLFEED = 0x55;
IO0CLR = LED; /* LED闪烁1次 */
DelayNS(200);
IO0SET = LED;
VICIntEnClr = 1 << 12; /* 禁能PLL_INT中断 */
VICVectAddr = 0x00; /* 向量中断处理结束 */
}
/*********************************************************************************************************
** Function name: main
** Descriptions: 在中断中打开PLL,LED闪烁一次
** input parameters: 无
** output parameters: 无
** Returned value: 无
*********************************************************************************************************/
int main (void)
{
PINSEL0 = 0x00000000; /* 设置管脚连接GPIO */
IO0SET = LED; /* LED控制口输出 */
PLLCON = 1; /* 使能PLL */
PLLCFG = 0x25; /* 设置M为6,P为2 */
PLLFEED = 0xAA; /* 发送PLL馈送序列 */
PLLFEED = 0x55;
IRQEnable(); /* 使能IRQ中断 */
/*
* 设置PLL中断
*/
VICIntSelect = 0x00000000; /* 设置所有的通道为IRQ中断 */
VICVectCntl0 = 0x20 | 12; /* PLL_INT分配到最高优先级 */
VICVectAddr0 = (uint32)PLLINT; /* 设置PLL_INT向量地址 */
VICIntEnable = 1 << 12; /* 使能PLL_INT中断 */
while (1);
return 0;
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -