[51单片机] 在c8051f里对应那个寄存器

[复制链接]
 楼主| chuandaoxy 发表于 2021-4-23 08:24 | 显示全部楼层 |阅读模式
最近在调试PCA,在STC里面是
CL = 0;
CH = 0;        //复位PCA寄存器

对应的c8051f里的是哪个寄存器?
ayb_ice 发表于 2021-4-23 08:40 | 显示全部楼层
每家模块的设计可能不一样,对应也没有太大意义
应该就是PCA计数的高低寄存器
 楼主| chuandaoxy 发表于 2021-4-23 09:54 | 显示全部楼层
ayb_ice 发表于 2021-4-23 08:40
每家模块的设计可能不一样,对应也没有太大意义
应该就是PCA计数的高低寄存器
...

但是出现一个问题,stc的代码测量脉宽是正常的,转到c8051f就不对了,老在变化

下面的代码在stc没有问题,c8051F总是变化

PCA_interrupt() interrupt 6 using 1

{
    CCF0                     = 0;
    High.U8[0]               = CCAP0H;
    High.U8[1]               = CCAP0L;

    CCP_Bufer[CCP_Counter++] = High.U16;            //把脉宽时间保存到数组里面

   
   
    CL = 0;
    CH = 0;                                          //复位PCA寄存器
}
ayb_ice 发表于 2021-4-23 10:20 | 显示全部楼层
chuandaoxy 发表于 2021-4-23 09:54
但是出现一个问题,stc的代码测量脉宽是正常的,转到c8051f就不对了,老在变化

下面的代码在stc没有问题 ...

要飞读才可以,你去读的时候,计数器也在走,可能会出错误的数据,

先读高,再读低,再读高,如果高没有变化则是正确的,否则重复这个过程直到正确,

有些MCU有硬件功能,可以自动飞读(不需要重复这个过程),但对读取顺序有要求,需要参考手册

飞读是个基本概念,可以百度下

评论

[url=home.php?mod=space&uid=702076]@xyz549040622[/url] :最早是出自INTEL的用户手册,设计这些的人是很清楚的  发表于 2021-4-25 08:24
这个绝对是经验之谈的。  发表于 2021-4-24 10:37
ayb_ice 发表于 2021-4-23 10:25 | 显示全部楼层
RT:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×

评论

这是STC的手册吗?搞的确实比较详细。  发表于 2021-4-24 10:38
cainiao518 发表于 2021-4-23 10:33 | 显示全部楼层
chuandaoxy 发表于 2021-4-23 09:54
但是出现一个问题,stc的代码测量脉宽是正常的,转到c8051f就不对了,老在变化

下面的代码在stc没有问题 ...

仿真一下看看问题在哪
lyjian 发表于 2021-4-23 20:46 | 显示全部楼层
ayb_ice 发表于 2021-4-23 10:20
要飞读才可以,你去读的时候,计数器也在走,可能会出错误的数据,

先读高,再读低,再读高,如果高没有 ...

不是所有芯片都需要这样干。
lyjian 发表于 2021-4-23 21:47 | 显示全部楼层
这种问题不是该自己看规格书吗?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

1044

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部