LGT主时钟分频系数怎么设置?
本帖最后由 YRHeng 于 2012-8-10 16:10 编辑程序如下:
void McuClkCtrl()
{
//使用外部晶振
DDC0_bit=0; //设置晶振管脚为高阻输入,关闭上拉电阻
PORTC0_bit=0;
DDC1_bit=0;
PORTC1_bit=0;
PMCR |= (1<<OSCMEN); //使能外部晶振
delay_ms(1); //等待外部晶振工作正常
PMCR |= (1<<EXTMSEL);//使用外部晶振
PMCR &= ~(1<<RC16MEN); //关闭内部16Mhz RC振荡器
CLKPR = 0x80; //使能时钟分频设置
CLKPR = 0x00; //设置分频系数为1
}
程序运行结果:
切换到外部晶振,但主时钟分频系数没改变
8M的晶振,本来设置串口波特率为9600,但实测为4800
请问各位前辈,主时钟时钟分频系数怎么设置?已经按文档写的,先把CLKRP 的 CLKPCE位置1,然后再改分频系统数了。
使用的编译器是mikroC PRO for AVR 问题解决,看了AVR的文档,禁止中断就可以了。。
为避免无意中改变时钟频率,在改变 CLKPS时必须执行一个特殊的写程序:
1. 将时钟预分频器更新使能 (CLKPCE) 置位,并同时将 CLKPR 的其余位清零
2. 在随后的 4 个时钟周期内,将需要的数值写入 CLKPS 并同时将 CLKPCE清零
为保证写操作不被中断,在改变预分频设置时必须禁止中断。
页:
[1]