chenxp99 发表于 2014-1-15 18:28:55

88ES系统时钟配置遇到的问题

写了段很简单的端口操作程序,使用默认配置能正常工作,突然想试试提高频率看看效果,就程序头加了这么几句:
CLKPR = 0x80;
CLKPR = 0x04;
_delay_ms(1000) ;

结果端口完全没反应,再刷回原代码,也同样不能运行,看来上面几条语句还是有效果,只是悲剧了。。。

请问该如何挽救呢,再焊个板子还是挺麻烦滴



LGT8F88A_databook_v1.1.1.pdf中



按红圈中的默认定义来看,绿圈中的功能位编号貌似写反了



上面蓝线的数据少了一位,而蓝圈提及的bit5 bit6具体怎么用呢,没在手册中找到。

LGT 发表于 2014-1-15 21:28:31

本帖最后由 LGT 于 2014-1-15 21:29 编辑

上面的位置是CLKPS的位置是如你所说的,写反了。
下面的PMCR的5,6位的定义也是不对,这个会尽快在下一个版本中更正。

PMCR的使用方法在手册的20页,有一个表格。

另外:
CLKPR = 0x80;
CLKPR = 0x04;
这是把主时钟切到了16分频了, 也就是2MHz, 这样你I/O的输出估计比你想象的要慢的很多,
所以在端口没有看到反应吧,而且delay_ms(1000)这里估计都非常长了。

如果要用4分频,
CLKPR = 0x80;
CLKPR = 0x02;
这样就可以了。

CLKPR寄存器的定义是和M88的一致的。
多谢指正!
页: [1]
查看完整版本: 88ES系统时钟配置遇到的问题