This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、我最近将代码从32位更改为64位、以获得更高的分辨率。 我也已从 COFF 更改为 EABI 设置、但我正在遇到文件链接方面的一些问题。 运行代码时、我的 float 和 int 变量不会更新。
我还使用 了 https://software-dl.ti.com/ccs/esd/documents/C2000_c28x_migration_from_coff_to_eabi.html 页面、并更改 了链接器命令文件更改、并替换了一些主要的下划线问题。 我将下面的编译器设置与.cmd 文件一起附加我所做的更改。
如果我能在这一问题上获得一些援助,那将是非常感谢的。
此致
阿拉法特
F28335.cmd 代码:
/*
//######################################################################################################################
//
//文件:F28335.cmd
//
//标题:F28335器件的链接器命令文件
//
//######################################################################################################################
//$TI 发行版:F2833x/F2823x 头文件和外设示例 V142 $
//$Release Date:2016年11月1日$
//版权所有:版权所有(C) 2007-2016德州仪器(TI)公司-
// http://www.ti.com/ 保留所有权利$
//######################################################################################################################
*
/*===================================================================
//适用于 Code Composer Studio V2.2和更高版本
//--------------------------------------------------------
//除了该内存链接器命令文件外,
//将头文件链接器命令文件直接添加到工程中。
//链接时需要标头链接器命令文件
//将外设结构设置到内部的适当位置
//存储器映射。
//
//在中找到了头文件链接器文件 \DSP2833x_Headers\cmd
//
//对于 BIOS 应用程序添加:DSP2833x_Headers_BIOS.cmd
//对于非 BIOS 应用程序添加:DSP2833x_Headers_nonBIOS.cmd
=================================================================================================== *
/*===================================================================
//对于 V2.2之前的 Code Composer Studio
//--------------------------------------------------------
// 1)使用以下-l 语句之一来包含
//项目中的头链接器命令文件。 头文件链接器
//将外设结构链接到正确的文件
//内存映射中的位置*/
/*取消注释此行以仅包括非 BIOS 应用程序的文件*/
/*-l DSP2833x_Headers_nonBIOS.cmd */
/*取消注释此行以仅包括 BIOS 应用程序的文件*/
/*-l DSP2833x_Headers_BIOS.cmd */
/* 2)在项目中添加路径 \DSP2833x_headers\cmd 至
库搜索路径位于 project->build options、linker tab、
库搜索路径(-I)。
/*================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ *
/*定义 F28335的内存块开始/长度
PAGE 0将用于组织程序段
第1页将用于组织数据段
注:
F28335上的存储器块是一致的(即相同的
物理存储器)。
不应该是相同的存储器区域
同时为 PAGE 0和 PAGE 1定义。
这样做将导致程序损坏
和/或数据。
L0/L1/L2和 L3存储器块被镜像-即
它们可以在高内存或低内存中访问。
为简单起见、其中仅使用了一个实例
链接器文件。
可组合连续 SARAM 存储器块
如果需要创建更大的存储器块。
*
存储器
{
第0页:/*程序内存*/
/*内存(RAM/FLASH/OTP)块可移动到第1页进行数据分配*/
ZONE0:origin = 0x004000,length = 0x001000 // XINTF 区域0 */
RAML0:origin = 0x008000、length = 0x001000 //片上 RAM 块 L0 */
RAML1:origin = 0x009000,length = 0x001000 //片上 RAM 块 L1 */
RAML2:origin = 0x00A000、length = 0x001000 //片上 RAM 块 L2 */
RAML3:origin = 0x00B000、length = 0x001000 //片上 RAM 块 L3 *
ZONE6:origin = 0x0100000,length = 0x100000 // XINTF 区域6 */
ZONE7A:origin = 0x0200000,length = 0x00FC00 /* XINTF 区域7-程序空间*/
FLASHH:origin = 0x300000、length = 0x008000 //片上闪存*/
FLASHG:origin = 0x308000、length = 0x008000 //片上闪存*/
FLASHF:origin = 0x310000、length = 0x008000 //片上闪存*/
FLASHE:origin = 0x318000、length = 0x008000 //片上闪存*/
FLASHD:origin = 0x320000,length = 0x008000 //片上闪存*/
FLASHC:origin = 0x328000,length = 0x008000 //片上闪存*/
FLASHA:origin = 0x338000,length = 0x007F80 //片上闪存*/
csm_RSVD:origin = 0x33FF80,length = 0x000076 // FLASHA 的一部分。 当 CSM 正在使用时、使用所有0x0000进行编程。 *
begin:origin = 0x33FFF6,length = 0x000002/* FLASHA 的一部分。 用于"引导至闪存"引导加载程序模式。 *
CSM_PWL:origin = 0x33FFF8,length = 0x000008 // FLASHA 的一部分。 FLASHA 中的 CSM 密码位置*/
OTP:origin = 0x380400,length = 0x000400 //片上 OTP */
ADC_CAL:origin = 0x380080,length = 0x000009 //保留存储器中的 ADC_cal 函数*/
IQTABLES:origin = 0x3FE000,length = 0x000b50 //引导 ROM 中的 IQMath 表*/
IQTABLES2:origin = 0x3FEB50,length = 0x00008c //引导 ROM 中的 IQMath 表*/
FPUTABLES:origin = 0x3FEBDC,length = 0x0006A0 //引导 ROM 中的 FPU 表*/
ROM:origin = 0x3FF27C,length = 0x000D44 //引导 ROM */
复位:origin = 0x3FFFC0,length = 0x000002 //引导 ROM 的部分*/
向量:origin = 0x3FFFC2,length = 0x00003E //引导 ROM 的部分*/
第1页:/*数据存储器*/
/*内存(RAM/FLASK/OTP)块可被移动至 PAGE0以进行程序分配*/
/*寄存器保留在第1页中*/
BOOT_RSVD:origin = 0x000000,length = 0x000050 // M0的一部分,引导 ROM 将此用于栈*/
RAMM0:origin = 0x000050、length = 0x0003B0 //片上 RAM 块 M0 *
RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
RAML4:origin = 0x00C000、length = 0x001000 //片上 RAM 块 L1 */
RAML5:origin = 0x00D000、length = 0x001000 //片上 RAM 块 L1 */
RAML6:origin = 0x00E000、length = 0x001000 //片上 RAM 块 L1 */
RAML7:origin = 0x00F000、length = 0x001000 //片上 RAM 块 L1 */
ZONE7B:origin = 0x20FC00,length = 0x000400 // XINTF 区域7- data space */
FLASHB:origin = 0x330000,length = 0x008000 //片上闪存*/
}
/*将段分配给内存块。
注:
DSP28_CodeStartBranch.asm 中用于重定向代码的 codestart 用户定义段
闪存时执行
ramfuncs 用户定义的段来存储将从闪存复制到 RAM 中的函数
*
部分
{
/*分配计划领域:*/
.cinit:> FLASHA PAGE = 0
init_array:> FLASHA,page = 0
.text:> FLASHA PAGE = 0
codestart:> begin page = 0
ramfuncs:load = FLASHD,
运行= RAML0、
Load_start (RamfuncsLoadStart)、
Load_End (RamfuncsLoadEnd)、
RUN_START (RamfuncsRunStart)、
load_size (RamfuncsLoadSize)、
PAGE = 0
csmpasswds:>csm_PWL page = 0
csm_rsvd:>csm_RSVD page = 0
/*分配未初始化的数据段:*/
.stack:>RAMM1 page = 1.
.bss:> RAML4 PAGE = 1.
.sysmem:>RAMM1 PAGE = 1.
/*初始化段进入闪存*/
/*要使 SDFlash 对这些内容进行编程、必须将它们分配到第0页*/
.const:> FLASHA PAGE = 0
.switch:> FLASHA PAGE = 0
/*分配 IQ 数学区域:*/
IQMath:> FLASHC page = 0 /*数学代码*/
IQmathTables :>IQTABLES,PAGE = 0,TYPE = NOLOAD
/*如果调用 IQNexp()或 IQexp(),请取消注释以下部分
库中的函数、以便利用
引导 ROM 中的相关 IQ Math 表(这可以节省空间和引导 ROM
1个等待状态)。 如果此部分未注释、则为 IQmathTables2
将被加载到其他存储器(SARAM、闪存等)中并将采用
上行空间、但0等待状态是可能的。
*
/*
IQmathTables2:> IQTABLES2,PAGE = 0,TYPE = NOLOAD
{
IQMath.lib (IQmathTablesRam)
}
*
FPUmathTables:> FPUTABLES,PAGE = 0,TYPE = NOLOAD
/*分配可通过 DMA 访问的 RAM 段:*/
DMARAML4:>RAML4,PAGE = 1
DMARAML5:>RAML5,PAGE = 1
DMARAML6:>RAML6,PAGE=1
DMARAML7:>RAML7,PAGE=1
/*分配 XINTF 区域7的0x400来存储数据*/
ZONE7DATA:> ZONE7B,PAGE = 1.
/*.reset 是编译器使用的标准段。 它包含*/
/* C 代码_c_int00起始地址。 /*
/*当使用引导 ROM 时,此部分和 CPU 矢量*/
/*不需要表。 因此、默认类型设置为*/
/* DSECT */
.reset:> reset,page = 0,type = DSECT
VECTORS:> VECTORS PAGE = 0,TYPE = DSECT
/*分配 ADC_cal 函数(出厂时已预先编程到 TI 保留存储器中)*/
ADC_cal:load = ADC_CAL、page = 0、type = NoLoad
}
/*
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
//文件结束。
//============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
*
我还 将在下面添加.c 文件的初始部分:
//头文件
#include "DSP28x_Project.h"//器件头文件和示例 include 文件
#include "DSP2833x_Device.h"
#include "DSP2833x_examples.h"
#include "math.h"
#include "string.h"
//声明所有子例程
空 Initsystem (void);//Main.1
void Initvariable (void);//Main.2
空 InitGPIO (空);//Main.3
void ClearIF (void);//Main.4
void Inithardware (void);//Main.5
void EnableIF (void);//Main.6
void EnableIDLE (void);//Main.6
void InitEPwm1Examples(void);//Main.5.2
void InitEPwm2Examples(void);//Main.5.3
void InitEPwm3Examples(void);//Main.5.4
void InitEPwm4Examples(void);//Main.5.5.
void InitEPwm5Examples(void);//Main.5.4
void InitEPwm6Examples(void);//Main.5.5.
void Initadc_value (void);//Main.5.1
//void adc (void);
void reset_isr (void);
// ISR 声明
中断空 ADC_ISR (空);
//全局变量
UINT32 EPwm1TimerIntCount = 0;
UINT32 EPwm2TimerIntCount = 0;
UINT32 EPwm3TimerIntCount = 0;
uint16 EPwm1_DB_DIRECTION = 0;
uint16 EPwm2_DB_DIRECTION = 0;
uint16 EPwm3_DB_DIRECTION = 0;
uint16 i = 0;
extern unsigned int RamfuncsLoadStart;
extern unsigned int RamfuncsLoadSize;
extern unsigned int RamfuncsRunStart;
extern unsigned int RamfuncsLoadEnd;
/********* APD 初始化开始 /
// PWM 参数和中断频率
int PRD_A = 751;
int Deb_a = 1;
浮点 PRD_Interr = 375;
int PRD_ISR = 3750;// 25us
// int PRD_ISR = 3148;// 21us
浮点 SPT = 0;
浮点 APD = 0;
/********* APD 初始化结束 /
/********* MC 初始化开始 /
// PWM 初始化
浮点 PRD = 669;//考虑递增计数器(对于200kHz 为750)
浮动 PRDU = 3000;//对于非文件夹 GD 为0.1MHz
浮点 DEb_pt = 3;//10
浮点 DEB_PB = 3;//10 (是4?)
浮点除法器= 56;//二次主用例测试
浮点 Debu = 1;
//取消文件夹初始化
float unfFlag = 1;
浮点周期= 1;
// PLL 初始化
float V_alpha[3]={0.0、0.0、0.0};
float V_beta[4]={0.0、0.0、0.0、0.0};
float V_d[2]={0.0、0.0};
float V_q[2]={0.0、0.0};
float V_q_er[2]={0.0、0.0};
float A_1 = 1.999816938472530;
float A_2 =-0.9905758754186;
float A_3 = 0.471206229075142e-4;
//双线形式
float bn_1 = 0.000154539844293318;
float bn_2 =-0.000158972013768773;
float bn_3 =-0.000154539844293318;
float bn_4 = 0.000158972013768773;
float BD_2 =-2.995832538814968;
float BD_3 = 2.991757093521227;
float BD_4 =-0.995924276224838;
/*
// zoh 表单
float bn_1 = 0;
float bn_2 =-0.309078565741323e-3;
float bn_3 = 0.627021600926429e-3;
float bn_4 =-0.317943035185106e-3;
float BD_2 =-2.995832519244495;
float BD_3 = 2.991757055753957;
float BD_4 =-0.995924258024169;
*
/*
//无直流抑制
float bn_1 =-0.222050704138232e-6;
float bn_2 =-0.444101408276465e-6;
float bn_3 =-0.222050704138232e-6;
float bn_4 = 0;
float BD_2 =-1.999816938472530;
float BD_3 = 0.999905758754186;
float BD_4 = 0;
*
float c_1 = 0.9999;
float costh = 1.0;
float sinth = 0.0;
float theta_grid[2]={0.0、0.0};
float delta_f[2]={0.0、0.0};// PLL 的输出频率
fn = 60;//标称频率
float fo = 0;
浮动 wn = 377;
float wo [2]={0.0、0.0};
float wo_LPF[2]={0.0、0.0};
浮点 TS = 25e-6;
//内插参数
浮点偏移= 0;
float ACTIVE_SIGN = 0;
float alpha_pll = 63.66;
float idx_float = 0;
int idx_L = 0;
int idx_H = 0;
// LPF 参数(10kHz 截止频率)
浮点 LPF_A = 0.2391;// mult。 电流
浮点 LPF_c = 0.5219;// mult。 按输出
// LPF 参数(1kHz 截止频率)
浮点 LPF_A1 = 0.072820507087338;// mult。 电流
浮点 LPF_C1 = 0.854358985825323;// mult。 按输出
// LPF 参数(1.2Hz 截止频率)
float lpf2_a = 0.942388978008234e-04;// 1.2Hz 截止频率
float lpf2_b = 0.942388978008234e-04;
float lpf2_c = 0.999811522204398;
float lpf2_xpit1 = 0;
float lpf2_yprep1 = 0;
// LPF 参数(12Hz 截止频率)
浮点 LPF_A6 = 0.000376849049686055;// mult。 电流
浮点 LPF_C6 = 0.999246301900628;// mult。 按输出
//输出电压传感器初始化
float Vo_p_sample_= 0.0;
float Vo_n_sample = 0.0;
float Vo_val = 0.0;
float Vo_scale = 0.1341;//假设为33k x3和65
//float Vo_scale = 0.093144;
//输入电流传感器初始化
float Iin_sample = 0.0;
float Iin_val = 0.0;
//输出电流传感器初始化
float IO_sample = 0.0;
float io_val[2]={0.0、0.0};
float IO_s[2]={0.0、0.0};
float io_scale = 0.002775;
float IO_SENSE_OFFSET = 2252.25;
//电网电压传感器初始化
float VG_SENSE[2]={0.0、0.0};
float u[4]={0.0、0.0、0.0、0.0};
//输入电压传感器初始化
float Vin_sense = 0;
float Vin_val[2]={0.0、0.0};
浮点 Vin[2]={0.0、0.0};
浮点 Vin_scale = 0.02515262515;
float Vin_use = 0;
// CL 和 PWM 更新参数
float theta = 0;
float theta_prd_val = 0;
float Debs_val = 0;
float phase1_val = 0;
float Phase2_val = 0;
float delta_CL = 0;
浮点 Δ_CL1 = 0;
float delta_cl_val = 0;
float iav_err = 0;
float iav_err1 = 0;
float iav_err_mc = 0;
float iav_ERR1_MC = 0;
浮点 LB = 0;
浮点 UB = 0.2;
浮点 C1 = 0;
浮点 C2 = 0;
浮点 KP_MC = 0.0002;
float ki_mc = 2;
浮点 TS_MC = 25e-6;
float wCdmV = 0.0777;/2*PI*60*0.6e-6*240*sqrt (2)
//交流电流基准
float IPK_ref = 0.7071;// 120W
// float IPK_ref = 1.1785;// 200W
// Theta LUT -值降额为 PRD/2 - 2*THETA
1、45、345、344、342、334、334、335、335、335、333、327、324、320、317、305、301、29、301、29、297、287、283、274、270、270、270、270、270、265、255、43、255、245、246、232、63、101、67、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、72、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、150、100
// Delta LUT -作为 Delta 派生的值- THETA
INT EPWM2_PHASE_LUT[200]={3665,362,360,357,349,344,337,329,307,294,280,266,250,241,233,227,221,2162,112,202,198,194,186,543,176,179,165,165,45,75,982,452,452,467,641,452,452,45,641,782,452,45,64,641,452,452,45,641,45,642,452,45,641,45,641,45,642,45,641,45,641,452,452,45,642,45,641,45,641,452,45,641,452,45,642,452,45,641,452,45,641,452,45,641,452,45,641,45,641,45,641,45,641,45,641,452,45,641,45,641,452,45,642,45,641,45,641,452,45,641,45,641,45,641,45,641,45,641,45,
751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,751,75
1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1
int Debp3_LUT[200]={11、11、11、11、10、10、10、10、9、9、9、9、9、9、8、8、8、8、8、8、8、8、8、8、8、8、7、7、7、7、7、7、7、7、7、7、7、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、2、
33、46、74、74、47、47、46、47、47、47、47、47、47、47、47、46、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、6、6、4、6、4、4、4、4、4、4、6、4、4、4、4、6、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4、4
float iav_ref_vec_mc[200]={0、1.12082318296822E-02、2.24136703330155E-02、36135228798062E-02、4.48049982319983E-02、598530723301507280264062E-0264026402680240264026807280240264026807280240268024026402640264026402680728072802402680240264026802402640268024080240264026802402680240264026402680240802402640264026802402640264026402640264026802408024026402640264026402640264026402680240802402640264026402640264026402680240802408024026402640264026402640264026402640264026402640264026402640264026402640264026402640264026
float IMC_ref_val = 0;
int update_idx_mc = 0;
float PHASE_LUT_IDx = 199;
int LUT_COUNT_dir = 1;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// APD DEFNS ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// 200W、0.1A、L = 8.1uH、C = 164uF
1) INT PRD_VEC[200]={326,324,32,320,318,315,312,309,295,291,287,283,273,268,253,253,253,243,242,2302,218,212,205,192,186,179,165,156,337,1003,243,133,103,133,133,103,133,133,143,143,1003,136,336,103,143,1003,1003,1003,1003,1003,1003,146,337,1003,103,1003,1003,103,146,336,336,103,143,1003,1003,1003,1003,146,336,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,103,1003,1003,103,1003,1003,1003,103,1003,1003,1003,1003,1003,1003,193,103,1003,1003,1003,1003,1003,193,103,1003,193,102,193,1003,1003,1003,103,1003,1003,1003,1003,1003,193,103,103,
内部 Duty_VEC[200]={180,180,180,180,179,179,178,177,176,175,174,172,169,167,163,161,156,153,150,144,144,144,138,135,124,120,1169,104,100,104,100,146,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,179,106,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,17
13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、13、2、2、2、2、2、2、2、2、2、2、2、2、2、3、3、3、3、3、4、4、4、4、4、4、4、5、5、5、5、5、5、5、6、13、13、13、13、13、14、13、13、13、14、13、13、13、13、13、13、14、13、13、13、13、13、14、13、13、13、13、14、14、13、13、14、13、13、13、13、13、13、13、13、13、14、13、13、14、13、13、13、13、13、13、14、13、13、13、14、13、13、13、13、13、14、13、13、14、13、13、13、14、13、13、13、13、13
int DeBR_VEC[200]={18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,
float VC_SAMPLE = 0.0;
float VC_sensed = 0.0;
浮点 VDC_SCALE = 0.03485187961165;
float iL_a_sample = 0.0;
float iL_a = 0.0;
float IL_scale = 0.0007326;//实际测量的 Il、单位为安培(正负)
//中间变量
浮点 Vin1 = 0;
浮点 Vin2 = 0;
float VC_rec_A = 0;
浮点 VC_A = 0;
float VC_avg2 = 0;
float VC_ERR = 0;
float VC_ERR1 = 0;
float c1_v = 0.0185006875/5;// Kp = 0.0185ki = 0.055;
float C2_v = 0.0184993125/5;
浮点 I0 = 0;
浮子= 0;
浮点 Ivalley = 0;
浮点 IPEAK = 0;
浮动 K1;
浮动 K2;
浮点 Thon = 0;
float TLon = 0;
浮点 Tsw = 0;
float Duty_ff = 0;
浮点 THDead = 0;
浮点 TLDead = 0;
浮点 Debr = 0;
浮点 DEBF = 0;
float Duty_cl = 0;
浮点 Duty_CL1 = 0;
浮点 Duty_A = 0;
float lb_a = 0.1;
浮点 UV_A = 0.9;
int volte_controller = 1;
float VC_ref = 85;
// PI 电流控制器参数
float iav_err;
float iav_err1;
浮点 I_DC_VOLTGE_LOOP = 0.07;
浮点 C1_A;
浮点 C2_A;
浮点 G_I_A;
浮点 WL_I_A;
// LUT 参数
int update_idx_a = 0;
int LUT_idx = 0;
float LUT_idx_float = 0;
int LUT_idx_L = 0;
int LUT_idx_H = 0;
浮点使能= 0;
浮点标志 ZC = 0;
浮点 tripFlag = 0;
float VON_val = 5;
float voff_val = 4;
// PR 控制器
// 100Hz PR
/*
float PR_A_A = 0.001248362541545*100;//单位增益 pr,其中增益按提供的倍数扩展- w_c = 50,w_0 = 2*PI*100
浮点 PR_B_A = 1.997256858028226;
浮点 PR_C_A = 0.997503274916909;
*
// PR 控制器
// 120 Hz PR
//float PR_A_A = 0.002493549645693*17;//单位增益 pr,其中增益按提供的倍数扩展- w_c = 100,w_0 = 2*PI*120
///float PR_B_A = 1.994658522399998;
///float PR_C_A = 0.995012910708614;
// PR 控制器
// 120 Hz PR
float PR_A_A = 0.001248328704525*50;//单位增益 pr,其中增益按提供的倍数扩展- w_c = 50,w_0 = 2*PI*120
浮点 PR_B_A = 1.997148511889236;
浮点 PR_C_A = 0.997503342590950;
// LPF 参数(2k Hz 截止频率)
float lpf2k_A = 0.135755248163633;// 2k Hz 截止频率
float lpf2k_b = 0.135755248163633;
float lpf2k_c = 0.728489503672734;
float lpf2k_xpref1 = 0;
float lpf2k_yfort1 = 0;
float Iin_val_p = 0;
float io_val = 0;
float PR_xfors=1 = 0;
float PR_xfors2 = 0;
float PR_yfors=1 = 0;
float PR_yfors2 = 0;
int main (void){
/*复制 secureRamFuncs 部分*/
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、&RamfuncsLoadEnd-&RamfuncsLoadStart);//(uint32)&RamFuncs_loadsize &RamFuncs_loadend--&RamFuncs_loadstart
/*初始化片上闪存寄存器*/
InitFlash();
//步骤1. 初始化系统控制:
Initsystem();
//步骤2. 初始化变量
Initvariable();
//同步所有 ePWM
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=0;
EDIS;
//步骤3. 初始化 GPIO:
InitGPIO();
//Step 4。 清除所有中断并初始化 PIE 矢量表
Clearif();
//步骤5. 初始化所有器件外设
Inithardware();
//步骤6. 特定于用户的代码、启用中断
EnableIF();
//同步所有 ePWM
EALLOW;
SysCtrlRegs.PCLKCR0.bit.TBCLKSYNC=1;
EDIS;
//步骤7. 空闲循环。 只需坐下来循环(可选):
EnableIDLE();
返回0;
}
我链接的页面中有一条建议是包含.retain 行、但我不确定该行应位于何处。
您好、阿拉法特、
在 EABI 中、将在链接阶段删除未引用的变量。 要保留此类变量、您可以添加#pragma RETAIN (symbol)。 这将确保.out 文件中存在变量、即使该变量未在应用程序代码中明确使用。
您能否详细介绍一下您所面临的问题。 您是否能够在"Expressions"窗口中看到变量? 您是否无法从代码中修改这些变量?
此致、
Veena
您好、阿拉法特、
由于我们从过去2周以来没有收到您的消息、我们假设问题已得到解决。 我将此主题标记为已解决。 如果您仍面临问题、请拒绝解决方案并回复主题、提供更多详细信息。
此致、
Veena