搜索

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

[复制链接]
909|10
| 2021-4-23 08:40 | 显示全部楼层
每家模块的设计可能不一样,对应也没有太大意义
应该就是PCA计数的高低寄存器

使用特权

评论回复
 楼主 | 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寄存器
}

使用特权

评论回复
| 2021-4-23 10:20 | 显示全部楼层
chuandaoxy 发表于 2021-4-23 09:54
但是出现一个问题,stc的代码测量脉宽是正常的,转到c8051f就不对了,老在变化

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

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

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

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

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

使用特权

评论回复

评论

ayb_ice 2021-4-25 08:24 回复TA
@xyz549040622 :最早是出自INTEL的用户手册,设计这些的人是很清楚的 
xyz549040622 2021-4-24 10:37 回复TA
这个绝对是经验之谈的。 
| 2021-4-23 10:25 | 显示全部楼层
RT:
QQ图片20210423102305.png

使用特权

评论回复

评论

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

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

仿真一下看看问题在哪

使用特权

评论回复
| 2021-4-23 20:46 | 显示全部楼层
ayb_ice 发表于 2021-4-23 10:20
要飞读才可以,你去读的时候,计数器也在走,可能会出错误的数据,

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

不是所有芯片都需要这样干。

使用特权

评论回复
| 2021-4-23 21:47 | 显示全部楼层
这种问题不是该自己看规格书吗?

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

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