微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 如何利用单片机有效地测量占空比

如何利用单片机有效地测量占空比

时间:10-02 整理:3721RD 点击:
如何利用单片机有效地测量占空比

看看一些带捕获功能的单片机,外部信号触发后定时器的值会锁存,将几个电平跳变时的值相减,再相比就可得到占空比

我用的是stc12c5a60s2  这个的捕获功能不是很理解,你能详细的说说吗

oid pca_init()         //捕获模块初始化
{
  CCON=0x00;
  CMOD = 0x01;
  CCAPM0=0x21;           //CCAP上升沿捕获,        允许中断
  CL=0;                  //清空PCA基本计数器
  CH=0;
   
  CCAP0L = 0x00;
  CCAP0H = 0x00;
  CR=1;              //启动PCA
  EA=1;
}
void DigDisplay();

void main()
{
uint i;
pca_init();
if(flag==1)
{
  t4=TABLE[1]-TABLE[0];                 
  for(i=0;i<8;i++)
        {
                DisplayData=DIG_CODE[t4%10];
                t4=t4/10;       
        }
         while(1)
        {
                DigDisplay();
        }
        while(1);
}

}
void PCA_Int(void) interrupt 7
{

        if(CCF0==1&&I<5)
        {
           CCF0=0;
           CCAPM0=0x11;
         TABLE[I]= CCAP0H*256 + CCAP0L;
         I++;
        }
  if(I>=5)  flag=1;

我感觉也可以测出脉宽,载测占空比

需要对上下沿都能捕获才行,毕竟占空比是上下沿都有的,不行的话就加一个过零比较

请问这个程序怎么写

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top