打印
[51单片机]

在c8051f里对应那个寄存器

[复制链接]
1905|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
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有硬件功能,可以自动飞读(不需要重复这个过程),但对读取顺序有要求,需要参考手册

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

使用特权

评论回复
评论
ayb_ice 2021-4-25 08:24 回复TA
@xyz549040622 :最早是出自INTEL的用户手册,设计这些的人是很清楚的 
xyz549040622 2021-4-24 10:37 回复TA
这个绝对是经验之谈的。 
5
ayb_ice| | 2021-4-23 10:25 | 只看该作者
RT:

QQ图片20210423102305.png (124.41 KB )

QQ图片20210423102305.png

使用特权

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

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

仿真一下看看问题在哪

使用特权

评论回复
7
lyjian| | 2021-4-23 20:46 | 只看该作者
ayb_ice 发表于 2021-4-23 10:20
要飞读才可以,你去读的时候,计数器也在走,可能会出错误的数据,

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

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

使用特权

评论回复
8
lyjian| | 2021-4-23 21:47 | 只看该作者
这种问题不是该自己看规格书吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

855

主题

1044

帖子

4

粉丝