sky999 发表于 2024-8-24 22:24:16

问下掉电唤醒定时器的F8H和F9H怎么读?

问下掉电唤醒定时器的F8H和F9H怎么读?
表格中999大约是0.5秒,但是实际误差很大,
我不知道这个Fwt是多少,C语言怎么读F8H和F9H?





布丁橘长 发表于 2024-8-24 23:31:12

在论坛搜的读RAM的方法,


用printf打印了下,得到29725Hz的结果
不知道这种方式对不对





AI8051U-32bit @22.1184M 波特率:115200
每按一次P3.2,发送一次数据

sky999 发表于 2024-8-25 08:28:09

布丁橘长 发表于 2024-8-24 23:31
在论坛搜的读RAM的方法,




为什么我读出来是0X2EE5,就是12005HZ,距离32KHZ这么远?

sky999 发表于 2024-8-25 08:53:20

本帖最后由 sky999 于 2024-8-25 09:17 编辑

布丁橘长 发表于 2024-8-24 23:31
在论坛搜的读RAM的方法,



每次从新烧录,读出来的都不一样

sky999 发表于 2024-8-25 09:46:04

布丁橘长 发表于 2024-8-24 23:31
在论坛搜的读RAM的方法,




按照手册给的公式,下面这3行程序,Lon变量应该是500ms才对,为什么是1400ms?
Lon=*FwtH*256+*FwtL;
Lon=(1000000/Lon)*16;
Lon=500000/Lon;

_奶咖君_ 发表于 2024-8-26 08:54:03

一个是这个内部的32K本来就不准,
第二一个,你下载过程序之后,在下载信息中可以看到整个32KIRC的值,,但是我记得整个出厂的值是厂家在5V--25℃的条件下的数值,如果你当前的环境温度不同,,单片机的供电不同都会和这个出厂值有差距。这个压差和温差能在手册里找到相应的曲线。
第三一个,,读取的方式如果这单片机有CHIPID,就可以看手册的这个章节,,这里也有。。如果是从ROM或者RAM里面读取,应该是要勾选添加重要参数的选项。
第四一个,,我还是觉得不如手动算出来个系数,加上去就算得了,,,如果想要更精确的计时,就不如换成带RTC的单片机或者外置RTC芯片了。

zhp 发表于 2024-8-26 10:02:56

F8H和F9H里面的值是芯片出厂是测量出的内部低速IRC的频率值
如果要正确读取,需要满足如下两个条件:
1、目标芯片RAM的F8h和F9h里面是否有这个参数
   如果目标芯片有CHIPID功能,则低速IRC的频率值只能从CHIPID中读取
   如果目标芯片没有CHIPID功能,RAM的F8h和F9h里面才有这个参数
   (不知你使用的是哪个单片机型号)
2、芯片上电初始化时,不能将IDATA全部清除
   Keil默认只清除00~7F,但如果你在STARTUP.A51将IDATALEN设置为大于F8h
   则存放于RAM中的参数就会被清除掉
页: [1]
查看完整版本: 问下掉电唤醒定时器的F8H和F9H怎么读?