⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 用凌阳16位单片机测试输入波形的频率
💻 C
字号:
#include "zero.h"
#include "SPCE061V004.H"
#define p (unsigned int*)0x0050
unsigned int num,u,u1,uu,uu1,j,num2;
int shu[]={'0','1','2','3','4','5','6','7','8','9'};

main()
{
//////////////初始化//////////////////
	unsigned int uiData,i;
       *P_IOA_Dir=0x0000;
    *P_IOA_Attrib=0x0000;
    *P_IOA_Data=0x0000;
    chushi();
    
   __asm("int off");                   //disable interrupt
    *P_INT_Ctrl=C_IRQ1_TMA;				//开中断TMA
   	*P_TimerA_Ctrl=C_SourceA_1+C_SourceB_1024Hz; 	//TimerA:1024Hz
	*P_TimerA_Data=0xFEFF;	//0.25 Second  
 while(1)
 {
  num=0;
  
  /////////////////频率计数/////////////////////
   while(1)
   {*P_Watchdog_Clear =0x0001;
    u=*P_IOA_Data;
    u1=u&0x8000;
    while(1)
      {*P_Watchdog_Clear =0x0001;
      uu=*P_IOA_Data;
      uu1=uu&0x8000;
      if((u1!=uu1)||(*P_INT_Ctrl&C_IRQ1_TMA)) break;        //a15电平改变时跳出
      }
     num++;
     if(*P_INT_Ctrl&C_IRQ1_TMA)                            //定时时间到
      {
      *P_INT_Clear=C_IRQ1_TMA;  //clear INT flag
      break;
      }
 } 
 num2=num+(int)(num*0.049);           
 num2*=2;                                    //频率计算,修正


*p=(unsigned int)(num2/10000)%10;
*(p+1)=(unsigned int)(num2/1000)%10;
*(p+2)=(unsigned int)(num2/100)%10;
*(p+3)=(unsigned int)(num2/10)%10;
*(p+4)=(unsigned int)(num2)%10;
//qp();
////////////////////////显示频率/////////////////////
Address1();
	xianshi('f');
	xianshi(':');
	for(j=0;j<5;j++)
	xianshi(shu[*(p+j)]);
	xianshi('H');
	xianshi('z');

	*P_Watchdog_Clear=0x0001;	
                    
	}
}	
     

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -