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.
工具/软件:TI C/C++编译器
尊敬的 TI 成员:
我有一个运行 ADC (4ch)的代码、并将其保存在具有函数 DLOG_4ch 的缓冲器中。 我根据 controlSUITE 中 TI 提供的模板项目(C:\ti\controlSUITE\development_kits\TemplateProjects)创建了我的项目、并且我已经按照指令基于数字电源库手册 v3.5来实现 ADC_4ch 和 DLOG_4ch。 我已经能够运行此代码、但是有2个主要问题我还没有找到答案:
1) 1)如何更改.out 文件的名称? 有时、当出现错误时、会显示"Project_name.out"
2) 2)如何调用 ISR (用 asm 编写)中的.c 函数? 如果我想稍后实现我自己的.c 函数、而这些函数不是 DPlib 库的一部分、我是否需要在汇编语言中编写它们? 因为到目前为止、被调用的数字电源库中的每个函数都位于.asm 中。 下面附上了 ISR 代码。
我的 ISR 代码:
;------------------------------------------------------------------ ;文件:{3ph_PWM_ACDC}-DPL-ISR.asm ; 说明:{3ph_PWM_ACDC}-DPL-ISR.asm包含系统的 ISR ;它还包含所有宏的初始化例程 ;正在系统中用于 CLA 和 C28x 宏 ; ;版本:请参阅{3ph_PWM-------------- ;在汇编语言中提供外围设备地址可见性 .cdecls C、list、"PeripheralHeaderIninclude.h" ;包含 C 头文件-设置 INCR_BUILD 等(用于条件编译) .cdecls C、NOLIST、"3ph_PWM_ACDC-Settings.h" ;包含系统正在使用的 Power Library Maco 的文件 。include "PWMDRV_1asm= ==================================================================================================================================================================================================================================================================== ;数字电源库- Initailization 例程 ;==================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================== ;标签到 DP 初始化函数 .def _DPL_Init ;指针初始化的虚拟变量 ZeroNet.usect "ZeroNet_Section",2,1;输出终端1 .text _DPL_Init: ZAPA MOVLXAR0,#ZeroNet MOVL*XAR0,ACC ;初始化此处使用的所有 DP 库宏 ;--- .if (INCR_BUILD = 1) PWMDRV_1ch_init 1;PWM1A .endif ;--------------- ADCDRV_4ch_init 0、1、2、3;ADCDRV_4ch 初始化 DLOG_4ch_init 1;DLOG_4CH 初始化 LRETR ;------------------------------------------------------- ;数字电源库-中断服务例程 .sect "ramfuncs" ;DP ISR 运行函数的标签 .def_DPL_ISR _DPL_ISR: ;完整上下文保存-将任何不受保护的寄存器压入栈 推入AR1H:AR0H 推入 XAR2 推入XAR3 推入XAR4 推入XAR5 推入XAR6 推入XAR7 推入 XAR7推入 SPM0;设置 C28模式 CLRCAMODE CLRCPAGE0、OVM ;CLRCINTM;清除中断屏蔽-如果 ISR 不可嵌套,则进行注释 ;--------------- ;调用 DP 库模块 ;----- .if (INCR_BUILD = 1) PWMDRV_1CH 1;PWM1A .endif ;--------------- ADCDRV_4ch 0、1、2、3;运行 ADCDRV_4ch DLOG_4ch 1;运行 DLOG_4CH 宏 ;------------------------------------------------------- ;在退出 .if (EPWMn_DPL_ISR=1) .if (EPWM1) MOVWDP、#_EPwm1Regs.ETCLR MOV@ @ @ EPwm1Regs.ETCLR、#0x01;清除 EPWM1 Int 标志.endif (EPWM1 .if);EPWCMOLD# EEPW2REP.EVM.EEPW01.EEP2RM2.EPW01.EVM_EPW01.EVM_EPM2REP.EEPW01.EPWLD.EPW01.EPWMER;EPWEPWMER、EP2EPWMER 标志0xEPWMER、EPWMER、EP2EPW01.EPWMER、EPWEPWMER、EPWMER EPW01.EPW01.EPWMER、EPWEPWME.EPWMER、EPWME.EPW01. EPWM3 .IF (EPWM4) MOVWDP、#_EPwm4Regs.ETCLR MOV@ @ @_EPwm4Regs.ETCLR、#0x01;清除 EPWM4 Int 标志.endif (EPWM5) MORegDP、#EPwm5Regs.ETCLR、#EEPWTM1.EVM.EVM1、EPWEPWTM1.MOVW = EVM.EVM6、EPWEPW01.M01.MOVW、EPWEPWEPW01.MOVW、EPWLMVW OR.EVM.EVM.EVM.EVM_EVM.EVM.EVM6、EPW01.MOVW = EPW01.MOVW、EPW01.MOVW、EPWEPW01.MOVW = EPWEPW01.MOVW = EPWEPWEPWEPWEPWEPWEPWEPW确认 中断组3 MOV @@ @_PieCtrlRegs.PIEACK、#0x4 .endif;EPWMn_ISR .if (ADC_DPL_ISR=1);ISR 由 ADC MOVW DP#_AdcRegs.ADCCLR 触发的情况---- 0x1----/LMGPRC.E------------ 0x1---------------------------------------------------------- 0xM--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------。 ;完整上下文恢复 ;SETCINTM;设置 INTM 以保护上下文恢复 POPXT POPXAR7 POPXAR6 POPXAR5 POPXAR4 POPXAR3 POPXAR2 POPAR1H:AR0H IRET;从中断 .end 返回 ;文件结束
工程文件图片: