📄 main11_1.c
字号:
/*************************************************************************
文件名: main11_1.c
日期: 2007年2月15日
公司(作者):
描述和说明: main()函数中启动定时器1,主循环中计算32点FFT
*************************************************************************/
#include "F2407REGS_c.h"
unsigned long temp_long; // 临时变量
unsigned int temp_int; // 临时变量
unsigned int U1_EffectiveValue; // 基波电压有效值
extern signed int U_data_in[320]; // 10个周波AD采样数据,为长整数
extern unsigned int calculating_flag;// 主循环中FFT计算开关,值为1时计算
extern signed U_data_analog[32]; // 1个周波AD采样模拟数据
extern int mag[32]; // 振幅平方数据缓冲区
main()
{
DSP2407_Initializing(); // DSP2407芯片初始化
IOPort_Initializing(); // 数字IO端口初始化
Timer1_Initializing(); // 定时器1初始化
Sampling_Initializing(); // AD7865初始化
FFT_Initializing(); // FFT初始化
asm(" CLRC INTM"); // 允许总中断
T1CON=T1CON|0x0040; // 位6[TENABLE]1: 启动Timer1
while(1) // 主循环,可分配非实时性任务
{
if(calculating_flag==1) // 每10个周波计算1次有效值
{
// FFT(U_data_analog); // 可用模拟数据模拟FFT运算
FFT(U_data_in+288); // 计算第10个周波的FFT
// 第10个周波数据起始地址为
// U_data_in+9*32=U_data_in+288
temp_long=mag[1]; // 基波振幅平方
temp_int=qsqrt(temp_long); // 开方后得振幅值
//======= 电压有效值物理量尺度变换 ========
U1_EffectiveValue=468*temp_int; // 基波电压有效值
calculating_flag=0; // 关闭主循环FFT计算开关
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -