查看: 4403|回复: 1

[S12] 飞思卡尔的mc9s12DG128时钟问题

[复制链接]

该用户从未签到

3

主题

3

帖子

0

新手上路

Rank: 1

积分
20
最后登录
1970-1-1
发表于 2009-2-6 15:57:41 | 显示全部楼层 |阅读模式
通过PLL锁相环在外部晶振为16MHz时得到24MHz, 现为了证实是否是24MHz,设置了主定时器(4分频),这时定时器在10922.66us后就应溢出(公式为(4/24)*65536=10922.66us),但我在PB0口接了示波器观看,发现为7ms左右,望各位高手指正,到底什么地方错了
#include /* common defines and macros */
#include /* derivative information */
#pragma LINK_INFO DERIVATIVE "mc9s12dg128b"

//初始化外围设备接口
void PeriphInit(void)
{
unsigned char clear;
DisableInterrupts; //关全局中断
// PB[7..0] 作为输出,初始为高电平
PORTB = 0xFF;
DDRB = 0xFF;
//初始化主定时器
TSCR1 = 0x80; /* enable timer TCNT */
TSCR2 = 0x82; /* TCNT prescaler setup 4分频*/

//设置PLL锁相环(内部)时钟24MHz为系统时钟 (外部时钟为16MHz,经PLL内部时钟为24MHz)
CLKSEL &= 0x7F;
REFDV = 1;
SYNR = 2;
while(!(CRGFLG&0x08));
CLKSEL |= 0x80;

EnableInterrupts; //开全局中断
}
//主定时器中断
#pragma CODE_SEG NON_BANKED
void interrupt Int_TimerOverFlow(void)
{
unsigned char i;
TFLG2_TOF = 1; //clear timer overflow flag
PORTB_BIT0=!PORTB_BIT0;
}
#pragma CODE_SEG DEFAULT

void main(void)
{
/* put your own code here */
PeriphInit();
for (;;) ;
}
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

0

主题

3

帖子

0

新手上路

Rank: 1

积分
6
最后登录
1970-1-1
发表于 2009-6-1 19:35:35 | 显示全部楼层

RE:飞思卡尔的mc9s12DG128时钟问题

REFDV = 1;
SYNR = 2;
好像设置错了!应该是:REFDV = 3;试试!
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-9-8 13:27 , Processed in 0.077260 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表