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

📄 main10_2.c

📁 在dsp2704平台上。利用DFT算法计算220V电压有效值。
💻 C
字号:
/*************************************************************************
文件名:		main10_2.c
日期:      	2007年2月15日
公司(作者):  
描述和说明:	main()函数中启动定时器1,主循环中用DFT计算电压有效值
*************************************************************************/
#include "F2407REGS_c.h"
unsigned long temp_long;			// 临时变量
extern signed long U_data_in[320];	// 10个周波AD采样数据,为长整数
extern unsigned int calculating_flag;// 主循环中有效值计算开关,值为1时计算
extern signed long U_data_analog[32];// 1个周波AD采样模拟数据

unsigned int U_EffectiveValue;		// 电压有效值
main()
{   
	DSP2407_Initializing(); 		// DSP2407芯片初始化	
	IOPort_Initializing(); 			// 数字IO端口初始化	
	Timer1_Initializing();			// 定时器1初始化
	Sampling_Initializing();		// AD7865初始化
	asm(" CLRC INTM");				// 允许总中断 
	T1CON=T1CON|0x0040;				// 位6[TENABLE]1: 启动Timer1 
	while(1)    					// 主循环,可分配非实时性任务
	{
	  if(calculating_flag==1)		// 每10个周波计算1次有效值
	   {
	    U_EffectiveValue=DFT(U_data_in+288);	// 计算第10个周波的有效值
	   										// 第10个周波数据起始地址为
	   										// U_data_in+9*32=U_data_in+288
   //   U_EffectiveValue=DFT(U_data_analog);	// 计算1个周波模拟数据的有效值
											// 作模拟运算时可用该语句
		temp_long=938*U_EffectiveValue;		// 电压物理量尺度变换第一步,DFT之结果乘938 
		temp_long=temp_long>>10;			// 电压物理量尺度变换第二步,以上之结果再除1024
		U_EffectiveValue=temp_long;
		calculating_flag=0;					// 关闭主循环有效值计算开关
	   }
	} 									 								
}

⌨️ 快捷键说明

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