PIC单片机计数器功能不计数

[复制链接]
49|2
yujidanping 发表于 2026-6-19 10:02 | 显示全部楼层 |阅读模式
使用单片机型号是PIC24FJ1024GB610,用引脚RC14对波形脉冲计数,使用定时器3计数,定时器4定时1秒读数。现在就是不计数,数据一直是零。定时器4的中断能进。不知道哪里配置有问题。配置如下:/*==============================================================================
* 转速测量初始化(计数法:定时器3计数,定时器4定时1秒)
*============================================================================*/
void Fan_SpeedMeasure_Init(void) {
     char buf[32];
       // ========== 配置RC14为数字输入 ==========
      FAN_FEEDBACK_TRIS = 1;
      ANSC  &= ~(1 << 14);      
  
  //PPS配置
      __builtin_write_OSCCONL(OSCCON & 0xBF);  
   
    // T3CK映射到 74引脚,RC14  RPI37
   RPINR3bits.T3CKR = 37;
  
    // 锁定PPS配置
  
  __builtin_write_OSCCONL(OSCCON | 0x40);
  

     // ========== 配置定时器3为计数器模式 ==========
    T3CON = 0;
    TMR3 = 0;                        // 清零计数器
    PR3 = 0xFFFF;                    // 最大计数值
   
    // TCS = 1:使用外部时钟(T3CK引脚输入脉冲)
    T2CONbits.T32 = 0;
    T3CONbits.TGATE = 0;    // 关闭门控
   T3CONbits.TCKPS = 0;    // 1:1 预分频(直接计数)
   T3CONbits.TECS = 0b01;    //  使用外部时钟(T3CK引脚输入脉冲)
   T3CONbits.TCS = 1;
    // 启动定时器3
    T3CONbits.TON = 1;
   
    // ========== 配置定时器4用于1秒定时 ==========
    T4CON = 0;
    TMR4 = 0;
    PR4 = FCY - 1;                   // 6,000,000 - 1 = 5,999,999(1秒)
    T4CONbits.TCKPS = 0;             // 预分频 1:1
    T4CONbits.TON = 1;               // 启动定时器4
   
    // 使能定时器4中断
    IFS1bits.T4IF = 0;
    IEC1bits.T4IE = 1;

}
/*==============================================================================
* 定时器4中断服务程序(每秒计算一次转速)
*============================================================================*/
void __attribute__((interrupt, auto_psv)) _T4Interrupt(void) {
    // 关闭中断,避免嵌套
   
    IEC1bits.T4IE = 0;
    // 读取TMR3中的脉冲计数
    pulses = TMR3;
    // 清零计数器,准备下一轮计数
   
     TMR3 = 0;
    // 清除中断标志
    IFS1bits.T4IF = 0;
    // 重新开启中断
    IEC1bits.T4IE = 1;
}
AloneKaven 发表于 2026-7-13 15:55 | 显示全部楼层
检查T3CON的TECS位是否设置正确,确保它被设置为1以启用计数器。同时,确认T3CK引脚的输入是否稳定,波形脉冲是否在计数器的有效边沿。
Henryko 发表于 2026-7-14 10:40 | 显示全部楼层
检查T3CON的TCS位,确保设置为1,且T3CK引脚输入稳定,脉冲在有效边沿。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

2

帖子

0

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