19839009851 发表于 2025-7-24 16:57:00

8H8K64U 用定时4做外部计数,如何算出外部频率 | 用专业的PWM7

如题:
现在我想用定时器4   外部取比如18K的频率,
我用定时器4计数模式 开启中断 ,是不是默认下降沿中断,
一次我现在频率为22.1184频率,
这样定时器4可以最高取样到多少频率的范围?

我现在想取样外部信号计算出频率,单纯用定时器4的外部计数器模式是否可以做到,
是否还需要开启其他定时器配合,或者外部中断配合啥的,
求教大神们指点。

19839009851 发表于 2025-7-24 16:58:23

我现在系统频率为22.1184M,不知道定时器4可以取的频率范围为多少,定时器4对外部频率的宽度有要求么

DebugLab 发表于 2025-7-24 17:35:20

最高输入频率是主时钟频率的一半
要两个定时器,一个用来计数,另一个用来测量时间
9年前做的频率计:






#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
sbit ww=P2^0;//万位
sbit qw=P2^1;//千位
sbit bw=P2^2;//百位
sbit sw=P2^3;//十位
sbit gw=P2^4;//个位
uchar wan,qian,bai,shi,ge,a;
ulong count,b;
uint code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极数码管不带小数点代码表
void delay(uint i)//延时i*100微秒
{
uint j,k;
for(j=i;j>0;j--)
    for(k=9;k>0;k--);
}
void init()//初始化函数
{
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        PX0=0;
        PT0=1;
        IT0=1;
        EA=1;
        ET0=1;
        EX0=1;
        TR0=1;
        a=0;
        count=0;
}
void display()//显示函数
{
        wan=count/10000;
        qian=count%10000/1000;
        bai=count%1000/100;
        shi=count%100/10;
        ge=count%10;
        P0=table;
        ww=1;
        delay(5);
        ww=0;
        P0=table;
        qw=1;
        delay(5);
        qw=0;
        P0=table;
        bw=1;
        delay(5);
        bw=0;
        P0=table;
        sw=1;
        delay(5);
        sw=0;
        P0=table;
        gw=1;
        delay(5);
        gw=0;
}
void main()//主函数
{
        init();
        while(1)
        {
                display();
                if(a>=20)
                {
                        a=0;
                        count=b;
                        b=0;
                }
        }
}
void add() interrupt 0
{
        b++;
}
void time() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        a++;
}

神农鼎 发表于 2025-7-24 22:17:14


这个型号的 T4管脚在 P0.2 / P0.6 可设置





神农鼎 发表于 2025-7-24 22:27:49

P0.2 有 PWM7_3








【新提醒】视频教学《USB型 1T 8051 单片机原理及应用-8H8K64U》,山东大学陈桂友教授 - 视频教学,《单片机原理及应用》教学改革及实战技术交流会,本版限制发帖 国芯人工智能技术交流网站 - AI32位8051交流社区

神农鼎 发表于 2025-7-25 08:35:42



【新提醒】高级16位PWM,输入捕获测量低频率信号,可低至0.014Hz,8H/STC32G/AI8051U 通用 - BLDC/144MHz-PWM-硬件移相/45路PWM+3路CCP/7组不同周期的PWM/DAC 国芯人工智能技术交流网站 - AI32位8051交流社区
页: [1]
查看完整版本: 8H8K64U 用定时4做外部计数,如何算出外部频率 | 用专业的PWM7