程序如下:
#include <hidef.h> /* common defines and macros */
#include <mc9s12a512.h> /* derivative information */
#pragma LINK_INFO DERIVATIVE "SampleS12"
void PLL_init(uchar SYNR_data,uchar REFDV_data);
void main(void) {
/* put your own code here */
uchar *p;
static uchar j=0;
struct student
{
uchar a;
uint b;
float c;
};
union test
{
struct student d;
uchar e[8];
uchar f[1820];
}h;
h.d.c = 0.1;
h.f[1799]=0x11;
h.f[1800]=0x11;
h.f[1801]=0x11;
EnableInterrupts;
p = &h.f[1799];
p++;
j = *p;
PLL_init(1,1);
for(;;)
{
}
}
/****************************************************************************
* 名 称:PLL_init
* 功 能:PLL初始化程序
* 入口参数:SYNR_data 倍频系数
* REFDV_data 分频系数
* 说 明:PLLCLK = 2*OSCCLK*(SYNR_data+1)/(REFDV_data+1)
* 出口参数:无
****************************************************************************/
void PLL_init(uchar SYNR_data,uchar REFDV_data)
{
CLKSEL = 0; // 选择外部晶振为时钟源
PLLCTL_PLLON = 0; // 关闭PLL
SYNR = SYNR_data; // 选择倍频系数
REFDV = REFDV_data; // 选择分频系数
PLLCTL = 0x70;
while(!CRGFLG_LOCK); // 等待PLL锁定
CLKSEL = 0x80; // 选择PLL为时钟源
}
运行这段程序会跑飞,不知道是什么原因?
[此贴子已经被作者于2007-3-14 13:00:20编辑过]
[此贴子已经被作者于2007-3-14 14:17:37编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |