📄 main10_2.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 + -