📄 main10_3.c
字号:
/*************************************************************************
文件名: main10_3.c
日期: 2007年2月15日
公司(作者):
描述和说明: main()函数中启动定时器1,主循环中用时域法计算电压有效值
*************************************************************************/
#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=EffectiveValue_timedomain(U_data_in+288);
// 用时域法计算第10个周波的有效值
// 第10个周波数据起始地址为
// U_data_in+9*32=U_data_in+288
temp_long=2653*U_EffectiveValue; // 电压物理量尺度变换第一步,时域算法之结果乘2653
temp_long=temp_long>>10; // 电压物理量尺度变换第二步,以上之结果再除1024
U_EffectiveValue=temp_long; // 最终电压值
calculating_flag=0; // 关闭主循环有效值计算开关
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -