在线时间0 小时
UID180704
注册时间2009-7-25
NXP金币0
该用户从未签到
注册会员

- 积分
- 173
- 最后登录
- 1970-1-1
|

楼主 |
发表于 2011-4-11 16:36:48
|
显示全部楼层
回复:▊▊▊MC9S08AC16 晶振问题▋▋▋
回复第 2 楼 安 于2011-04-11 08:23:13发表:
系统时钟配置错误。你应该选择正确的系统时钟,不要超出范围。而且配置的时候,对应的参数也要选择正确。你把你配置的代码发出来我看看。
我也想是配置错误! 配置的代码是 用PE 生成的!你也可以自己用PE生成一个看看。
我生成是这样的:
void _EntryPoint(void)
{
/* ### MC9S08AC16_32 "Cpu" init code ... */
/* PE initialization code after reset */
/* Common initialization of the write once registers */
/* SOPT: COPE=0,COPT=1,STOPE=1,??=1,??=0,??=0,??=1,??=1 */
setReg8(SOPT, 0x73);
/* SPMSC1: LVDF=0,LVDACK=0,LVDIE=0,LVDRE=1,LVDSE=1,LVDE=1,??=0,BGBE=0 */
setReg8(SPMSC1, 0x1C);
/* SPMSC2: LVWF=0,LVWACK=0,LVDV=0,LVWV=0,PPDF=0,PPDACK=0,??=0,PPDC=0 */
setReg8(SPMSC2, 0x00);
/* SMCLK: MPE=0,MCSEL=0 */
clrReg8Bits(SMCLK, 0x17);
/* System clock initialization */
/* ICGC1: HGO=0,RANGE=0,REFS=1,CLKS1=1,CLKS0=1,OSCSTEN=1,LOCD=0,??=0 */
setReg8(ICGC1, 0x3C);
/* ICGC2: LOLRE=0,MFD2=0,MFD1=0,MFD0=0,LOCRE=0,RFD2=0,RFD1=1,RFD0=0 */
setReg8(ICGC2, 0x02);
if (*(unsigned char*)0xFFBE != 0xFF) { /* Test if the device trim value is stored on the specified address */
ICGTRM = *(unsigned char*)0xFFBE; /* Initialize ICGTRM register from a non volatile memory */
}
while(!ICGS1_LOCK) { /* Wait */
}
/*** End of PE initialization code after reset ***/
__asm jmp _Startup ; /* Jump to C startup code */
}
我自己测试的时候发现:只要ICGC1_RANGE=0。好像就不行、 |
|