| 搞一个定时器中断,举个例子,里面不是有TL0和TH0,,查手册找到它们的地址,然后用keil的debug,找里面的memory,然后你去搜你要找的l0和h0的地址,然后打断点运行,看时间变化量就可以了。注意观察是否重新开始加载值了 |
| 用DEBUG断点调试 |
ningsy 发表于 2022-12-19 09:15 对于精确的长时间,STC单片机都是用定时器的 不会用while这种代码的 至于调节片上的时钟,感觉没必要 |
| 多谢以上各位指导!我会试试看,或许就能用到。 |
| 用一个IO来指示时间。 |
| 网上查了一下,有人让单片机产生1S(或100ms)的波形,配合逻辑分析仪,调整IRTRIM寄存器的值,即可调整STC单片机的频率。但这个调整是一次性的,不同的单片机,就可能有所不同,不同的环境(特指温度,也可能不同)。 这就很麻烦了。我还是先接受它自动调整的精度,实在不行了,就接个晶振上去爽快些。 |
ningsy 发表于 2022-12-18 13:51 左下角是一直0的,所以我说没有办法直接得到,只能要么用变量记录时钟周期,比如开个定时器,每50000个周期,变量+1,然后结合定时器和变量,算出过了多少周期,要么某个IO输出高低电平,让第三方芯片来计算。 |
ningsy 发表于 2022-12-18 14:08 下载时可以不需要设置22.1184, 但是,由于频段的关系,要选同一频段的,为了避免麻烦,你还是选22.1184吧,8g1k没有chipID,所以,你只能ROM读取,记得下载时勾选“末尾添加重要参数”选项,才能读取成功。最后,这个数值,是出厂是stc测试时最接近22.1184频率的值,如果这个频率最终依然无法满足你的需要,你只能考虑其他时钟源了。就我的使用结果来看,比电脑自动调的要准太多了。 |
|
一两个小时的倒计时是不会有问题的,只要IRC时钟选择对了,再用定时器做延时,保证没有问题 STC8G1K08A,我用来定时六个小时,在分上跟时钟IC是没有区别的,但有时会误差三五分钟 做项目是不可能让你每个单片机去调节时钟的,每个单片机的RC时钟误差都是差不多的 如果你要是想知道怎么测量,最好是下载后用IO进行测量,示波器或者逻辑分析仪都可以 |
| 实际运用中,一小时内这点误差可以忽略不计。如果对时间精度有特别需求就要另外添置高精度时钟芯片。 |
| 要想得到较准的频率,应当读取出厂的22.1184校验值,用这个,再根据你的实际需要分频,ISP下载设置的频率是不准的,受限你的电脑,至少我用电脑设能误差3%以上。 |
| 直接看不了,只能间接看,比如利用某变量记录两个时间点之间的机器周期,又比如某个IO在两个不同时间点输出高低电平,第三方采集等。 |