找回密码
 立即注册
查看: 131|回复: 9

PCA模块之捕获功能问题请教各位大师傅

[复制链接]
  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-06-14 08:04:10
已绑定手机

4

主题

23

回帖

126

积分

注册会员

积分
126
发表于 2025-5-23 10:20:40 | 显示全部楼层 |阅读模式
我现在想要PCA模块0捕获功能区抓 脉冲高电平和周期,配置成边沿触发中断,也就是上下均触发,但是在中断里如何判断是上边沿还是下边沿?好像规格书没有相关的demo? void PCA_Isr() interrupt 7                     //PCA中断
{
    if (CF)//PCA计数器溢出标志
    {
        CF = 0;
        cnt++;                                  //PCA计时溢出次数+1
    }
   
   
    if (CCF0)//PCA中断式共享的,要判断来自哪个模块,PCA模块0 的中断  一共有3个 CCF0-CCF2
    {
      
        
        
    }
}

void PCA_INIT(void)
{
    CCON = 0x00;
    //CMOD = 0x09;                              //PCA时钟为系统时钟不分频,使能PCA计时中断 0000 100 1
                                                //MCU主频12MHZ/12分频=1MHZ时间分辨率1us
    CMOD = 0x01;                                //PCA时钟为系统时钟/12分频,使能PCA计时中断 0000 000 1  
    CL = 0x00;                                  //PCA计数器初值设置寄存器清零  
    CH = 0x00;                                  //PCA计数器初值设置寄存器清零
    CCAPM0 = 0x11;                              //PCA模块0为16位捕获模式(下降沿捕获)
//  CCAPM0 = 0x21;                              //PCA模块0为16位捕获模式(上升沿捕获)
//  CCAPM0 = 0x31;                              //PCA模块0为16位捕获模式(边沿捕获)
    CCAP0L = 0x00;                              //PCA模块捕获值     
    CCAP0H = 0x00;                              //PCA模块捕获值  
    CR = 1;                                     //启动PCA计时器   
}


1.jpg
你先做了,再说话。
回复

使用道具 举报 送花

3

主题

722

回帖

155

积分

等待验证会员

积分
155
发表于 2025-5-23 11:03:00 | 显示全部楼层
在配置中断机构时,主触发器通常以0为基准。具体来说:

1. 主触发器配置:主触发器0应该被配置为0,即 0x00,这样才能使得主触发器0和中断中断条件机构ID7同时触发中断。

2. 中断中断条件机构ID7的触发条件:在中断中断条件机构ID7的触发事件中,主触发器0的值将决定是下边沿还是上边沿:
如果主触发器0的值为1,表示是下边沿。
如果主触发器0的值为2,表示是上边沿。

因此,如果用户希望主触发器0和中断中断条件机构ID7同时触发中断,主触发器0需要被配置为0。

示例配置:
  1. c
  2. void PCAINIT(void)
  3. {
  4.     // 主触发器0配置为0,以使得主触发器0和中断中断条件机构ID7同时触发中断
  5.     CCON = 0x00;
  6.     CMOD = 0x01;  // 主时钟设置为系统时钟/12分频
  7.     CL = 0x00;
  8.     CH = 0x00;
  9.     // 配置中断中断条件机构ID7
  10.     CCON = 0x00;
  11.     CMOD = 0x01;
  12.     CL = 0x00;
  13.     CH = 0x00;
  14.     // 配置中断机构7,主触发器0和中断中断条件机构ID7同时触发中断
  15.     CSI = 0;
  16.     CSI = 0x00; // 主触发器0配置为0
  17.     CSI = 0x00; //中断中断条件机构ID7的触发器配置为0
  18.     // 配置中断机构7的中断中断条件机构ID7
  19.     CSI = 0;
  20.     CSI = 0x00; // 主触发器0配置为0
  21.     CSI = 0x00; //中断中断条件机构ID7的触发器配置为0
  22.     if (CF) // 可能需要进一步处理
  23.     {
  24.         CF = 0;
  25.         cnt++;
  26.     }
  27. }
复制代码

需要注意的是,如果用户希望主触发器0和中断中断条件机构ID7同时触发中断,主触发器0应被配置为0。

希望这些建议对你有帮助!

[本文内容由国芯人工智能辅助生成,仅供参考]
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-06-14 08:04:10
已绑定手机

4

主题

23

回帖

126

积分

注册会员

积分
126
发表于 2025-5-23 11:18:26 | 显示全部楼层
具体怎么实现,判断上升沿下降沿触发,请给我一个demo
你先做了,再说话。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:208
  • 最近打卡:2025-06-16 08:41:37
已绑定手机

67

主题

1913

回帖

4297

积分

荣誉版主

无情的代码机器

积分
4297
发表于 2025-5-23 11:37:52 | 显示全部楼层
参考此贴,提到两个办法,一是中断里立即读。二是自己设flag区分上升还是下降:
https://www.stcaimcu.com//forum. ... e=1&extra=#pid79502
三天不学习,赶不上刘少奇~
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-06-14 08:04:10
已绑定手机

4

主题

23

回帖

126

积分

注册会员

积分
126
发表于 2025-5-23 14:35:32 | 显示全部楼层
erci*** 发表于 2025-5-23 11:37
参考此贴,提到两个办法,一是中断里立即读。二是自己设flag区分上升还是下降:
https://www.stcaimcu.com/ ...

你先做了,再说话。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:94
  • 最近打卡:2025-06-16 11:51:06

74

主题

6089

回帖

1万

积分

超级版主

积分
12721
发表于 2025-5-23 21:32:51 | 显示全部楼层
进入中断立即读出输入的电平,高电平则为上升沿,低电平则为下降沿。
PCA中断设置为最高优先级。
注意,如果占空比很小或很大,即两个边沿中断间隔时间太短,则会响应不过来。
解决方法是用两个输入,一个上升不中断,一个下降沿中断,或一个上升中断,一个下降沿并不中断。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-06-14 08:04:10
已绑定手机

4

主题

23

回帖

126

积分

注册会员

积分
126
发表于 2025-6-4 21:39:02 来自手机 | 显示全部楼层
梁工 发表于 2025-5-23 21:32
进入中断立即读出输入的电平,高电平则为上升沿,低电平则为下降沿。
PCA中断设置为最高优先级。
注意,如 ...

多谢
你先做了,再说话。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-06-15 10:25:21

2

主题

101

回帖

508

积分

高级会员

积分
508
发表于 2025-6-4 22:53:20 | 显示全部楼层
这个属于单片机的高阶应用了
学无止境
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看I
  • 打卡总天数:13
  • 最近打卡:2025-06-14 08:04:10
已绑定手机

4

主题

23

回帖

126

积分

注册会员

积分
126
发表于 2025-6-5 18:02:20 | 显示全部楼层
zengc*** 发表于 2025-6-4 22:53
这个属于单片机的高阶应用了

不是基操吗
你先做了,再说话。
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民I
  • 打卡总天数:64
  • 最近打卡:2025-06-15 10:25:21

2

主题

101

回帖

508

积分

高级会员

积分
508
发表于 2025-6-5 23:24:48 | 显示全部楼层
基操应该是流水灯,GPIO,ADC,液晶屏,串口之列
学无止境
回复 支持 反对

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-6-16 13:10 , Processed in 0.706222 second(s), 100 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表