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.

[参考译文] CCS/LAUNCHXL-F28027F:CAN#39;T open source file error

Guru**** 2039090 points
Other Parts Discussed in Thread: TMS320F28027F, CONTROLSUITE
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/867381/ccs-launchxl-f28027f-can-t-open-source-file-error

器件型号:LAUNCHXL-F28027F
主题中讨论的其他器件:TMS320F28027FcontrolSUITE

工具/软件:Code Composer Studio

我不熟悉 CCS v5。 我有 C2000 LaunchPadXL TMS320F28027F、我想将其用于 BLDC 驱动器。 我创建了一个新项目并得到 "../main.c"、第2行:致命错误#1965:无法打开源文件"common/include/adc.h"此错误。 我尝试了路径和库、但它们都不起作用。 此外、我打开了示例工程、尝试编译、但再次发生了相同的错误。 我正在进行毕业项目、一直在这里、请帮我。  

您可以在下面找到我的 main.c、属性屏幕截图和错误。

#include "DSP28x_Project.h"
#include "common/include/adc.h"
#include "common/include/clk.h"
#include "common/include/flash.h"
#include "common/include/gpio.h"
#include "common/include/pie.h"
#include "common/include/pll.h"
#include "common/include/timer.h"
#include "common/include/wdog.h"
#include "common/include/pwer.h"
#include "common/include/pwm.h"
#include "math.h"
#define INTPOOLCOUNT 50
#define INTEGRALCOUNTPERIOD 50000
_interrupt void ADC_ISR (void);
中断空 CPU_timer0_ISR (空);
中断空 CPU_Timer1_ISR (空);
_interrupt void XINT1_ISR (void);
_interrupt void XINT2_ISR (void);
_interrupt void xint3_ISR (void);


void PWM_Init_();
void pwm2_Init_();
void pwm3/Init_();
void GPIO_init();
void adc_init();
void delay_loop (void);

unsigned int period = 5000;
unsigned int 半周期;
unsigned int cmpa;
int 死区时间=2;//MMKROSANIYE HIGHLAR VE LOWLAR ARASI BEKLEME
int inition=0;
所需的 int = 0;
int i=0、j=0;
int g气_value=200;
int gastest=0;
int g气 池[10]={0、0、0、0、0、0、0、0、0、0};
int Integral_pool[INTPOOLCOUNT];
int integralpoolcounter=0;
浮点积分;
浮点微分值;
浮点比例;
//
浮子 KINTEGRAL;
浮子 KDERIVATIVE;
悬空 KPROPORTIONAL;
//
int pidoutput;
int hallbinary、HALL1、hall2、hall3;
int nutman=0;
int counter1 = 0;
int counter2 = 0;
int counter3 = 0;
int counter_adc=0;
long int temp=0、inttemp=0;
内部转速;
int 错误, lasterror;
int counterdd=0;
int start=0;
int ADC2=0;
int timer2count=0;
int timer1count=0;
INT CAN=0;
int timerstart=0;
int close_signal=0;

adc_handle myAdc;
clk_handle myClk;
Flash_handle myFlash;
GPIO_Handle myGpio;
PIE_Handle myPie;
pll_handle myPll;
Timer_handle myTimer;
Timer_handle myTimer1;
WDOG_Handle myWDog;
PWR_Handle MyPwr;
cpu_handle myCpu;
PWM_Handle myPwm1;
PWM_Handle myPwm2;
PWM_Handle myPwm3;
PWM_Handle adcepwm;

int main (void){
myAdc = ADC_init ((void *) ADC_base_ADDR、sizeof (ADC_Obj));
myClk = CLK_init ((void *) CLK_base_ADDR、sizeof (CLK_Obj));
myFlash = flash_init ((void *) flash_base_ADDR、sizeof (flash_Obj));
myGpio = GPIO_init ((void *) GPIO_base_ADDR、sizeof (GPIO_Obj));
myPie = PI_init ((void *) PIE_BASE_ADDR、sizeof (PIE_Obj));
myPll = PLL_init ((void *) PLL_base_ADDR、sizeof (PLL_Obj));
myTimer = TIMER_INIT ((void *) TIMER0_BASE_ADDR、sizeof (timer_Obj));
myTimer1 = timer_init (((void *) Timer1_base_ADDR、sizeof (timer_Obj));
myWdDog = WDOG_INIT ((void *) WDOG_BASE_ADDR、sizeof (WDOG_Obj));
myCpu = cpu_init ((void *) NULL、sizeof (cpu_Obj));
myPwm1 = PWM_init ((void *) PWM_ePWM2_base_ADDR、sizeof (PWM_Obj));
myPwm2 = PWM_init (((void *) PWM_ePWM3_base_ADDR、sizeof (PWM_Obj));
myPwm3 = PWM_init ((void *) PWM_ePWM1_base_ADDR、sizeof (PWM_Obj));
adcepwm = PWM_init ((void *) PWM_ePWM4_base_ADDR、sizeof (PWM_Obj));

WDOG_DISABLE (myWDog);
CLK_enableAdcClock (myClk);
(*Device_cal)();
CLK_setOscSrc (myClk、CLK_OscSrc_Internal);
PLL_setup (myPll、PLL_Multiplier_10、PLL_DivideSelect_CLKIN_BY_2);
PIE_DISABLE (myPie);
PI_DisableAllInts (myPie);
CPU_disableGlobalInts (myCpu);
CPU_clearIntFlags (myCpu);

#ifdef _flash
memcpy (&RamfuncsRunStart、&RamfuncsLoadStart、(size_t)&RamfuncsLoadSize);
#endif


PI_setDebugIntVectorTable (myPie);
PIE_ENABLE (myPie);
PI_registerPieIntHandler (myPie、PI_GroupNumber_1、PI_SubGroupNumber_4、(intVec_t)&XINT1_ISR);

PI_registerPieIntHandler (myPie、PI_GroupNumber_1、PI_SubGroupNumber_5、(intVec_t)&XINT2_ISR);
PI_registerPieIntHandler (myPie、PI_GroupNumber_12、PI_SubGroupNumber_1、(intVec_t)&xint3_ISR);
//PI_registerPieIntHandler (myPie、PI_GroupNumber_1、PI_SubGroupNumber_7、(intVec_t)&CPU_timer0_ISR);
PI_registerPieIntHandler (myPie、PI_GroupNumber_10、PI_SubGroupNumber_1、(intVec_t)&ADC_ISR);
//PI_registerSystemIntHandler (myPie、PI_SystemInterrupts_TINT1、(intvec_t)&CPU_Timer1_ISR);


adc_enableBandGap (myAdc);
ADC_enableRefBuffers (myAdc);
ADC_POWERUP (myAdc);
ADC_ENABLE (myAdc);
ADC_setVoltRefSrc (myAdc、ADC_VoltageRefSrc_Int);

/*timer_stop (myTimer);
Timer_setPeriod (myTimer、5000000000);
Timer_setPrescaler (myTimer、0);
Timer_reload (myTimer);
Timer_setEmulationMode (myTimer、TIMER_EmulationMode_StopAfterNextDecrement);
Timer_enableInt (myTimer);
Timer_start (myTimer);*/


//TIMER0 Ile 外部 INTERRUPTLAR Ayni Anda CALISMAZ
Timer_stop (myTimer1);
Timer_setPeriod (myTimer1、50000);
Timer_setPreScaler (myTimer1、0);
Timer_reload (myTimer1);
Timer_setEmulationMode (myTimer1、timer_EmulationMode_StopAfterNextDecrement);
Timer_enableInt (myTimer1);
Timer_start (myTimer1);

PI_enableInt (myPie、PI_GroupNumber_1、PI_InterruptSource_XINT_1);
PI_enableInt (myPie、PI_GroupNumber_1、PI_InterruptSource_XINT_2);
PI_enableInt (myPie、PI_GroupNumber_12、PI_InterruptSource_XINT_3);

CPU_enableInt (myCpu、CPU_IntNumber_1);//XINT1、XINT2
CPU_enableInt (myCpu、CPU_IntNumber_12);//XINT3
//CPU _enableInt (myCpu、CPU_IntNumber_13);//Timer1中断寄存器
CPU_enableInt (myCpu、CPU_IntNumber_10);//ADC 中断寄存器
//PIE_enableTimer0Int (myPie);
PIE_enableAdcInt (myPie、ADC_IntNumber_1);
cpu_enableGlobalInts (myCpu);
CPU_enableDebugInt (myCpu);

ADC_setIntPulseGenMode (myAdc、ADC_IntPulseGenMode_Prior);
ADC_enableInt (myAdc、ADC_IntNumber_1);
ADC_setIntMode (myAdc、ADC_IntNumber_1、ADC_IntMode_ClearFlag);
ADC_setIntSrc (myAdc、ADC_IntNumber_1、ADC_IntSrc_EoC2);
ADC_setSockChanNumber (myAdc、ADC_SockNumber_1、ADC_SockChanNumber_A6);
ADC_setSockTrigSrc (myAdc、ADC_SockNumber_1、ADC_SockTrigSrc_EPWM4_ADCSOCA);
ADC_setSockSampleWindow (myAdc、ADC_SockNumber_1、ADC_SockSampleWindow_14_cycles);//CALISMAZSA 7周期 Yap
//ADC PWM
CLK_enablePwmClock (myClk、PWM_NUMBER_4);
PWM_enableSockpulse (adcepwm);// SOC ACILIMI
PWM_setSockAPulseSrc (adcepwm、PWM_SockPulseSrc_CounterEqualCmpAcincr);
PWM_setSockAPeriod (adcepwm、PWM_SockPeriod_FirstEvent);
PWM_setCmpA (adcepwm、0x0080);//CMPA DEGERI
PWM_setPeriod (adcepwm、0xFFFF);//1ms
PWM_setCounterMode (adcepwm、PWM_CounterMode_Up);//递增计数并启动

//ADC PWM BITIS


GPIO_init();

PI_setExtIntPolarity (myPie、CPU_ExtIntNumber_1、PI_ExtIntPolarity_RisingAndFallingEdge);
PI_setExtIntPolarity (myPie、CPU_ExtIntNumber_2、PI_ExtIntPolarity_RisingAndFallingEdge);
PI_setExtIntPolarity (myPie、CPU_ExtIntNumber_3、PI_ExtIntPolarity_RisingAndFallingEdge);
PI_enableExtInt (myPie、CPU_ExtIntNumber_1);
PI_enableExtInt (myPie、CPU_ExtIntNumber_2);
PI_enableExtInt (myPie、CPU_ExtIntNumber_3);

clk_disableTbClockSync (myClk);
PWM_Init_();
pwm2_Init_();
pwm3/Init_();
CLK_enableTbClockSync (myClk);
//电机 ilk ACILDIGINDA 中断 OLMAYACAGINAN ILK HALL DURUMLARINI ALMAMIZ GEREKIR
HALL1 = GPIO_getData (myGpio、GPIO_Number_19);
hall2 = GPIO_getData (myGpio、GPIO_Number_28);
hall3 = GPIO_getData (myGpio、GPIO_Number_29);
hallbinary=HALL1+(hall2<<1)+(hall3<2);

while (1){

g气_value=adc_readResult (myAdc、adc_ResultNumber_1);
if (g气_value<200){
起始= 0;

if (g气_value<400){
GAS 值= 0;

if (g气_value>=400){
起始= 1;

CMPA =((float) g气_value / 4095.0)*(float)周期;
///deadman=GPIO_getData (myGpio、GPIO_Number_34);
门人=0;
if (deadman=1){
CMPA=0;


if (start=0){
//START-STOP KISMINDA KAPASITE DOLUMLARI HALL SENSORLERE ETKI ETMEDEN
GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setHigh (myGpio、GPIO_Number_2);
delay_loop();
GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setHigh (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
delay_loop();
GPIO_setHigh (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
delay_loop();
GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setHigh (myGpio、GPIO_Number_2);
delay_loop();
GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setHigh (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
delay_loop();
GPIO_setHigh (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
delay_loop();
GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
delay_loop();

/*HALL1 = GPIO_getData (myGpio、GPIO_Number_19);
hall2 = GPIO_getData (myGpio、GPIO_Number_28);
hall3 = GPIO_getData (myGpio、GPIO_Number_29);
*
hallbinary=HALL1+(hall2<<1)+(hall3<2);

switch (hallbinary)

情况5:

PWM_setCmpA (myPwm1、0);//faz1高电平
PWM_setCmpA (myPwm2、CMPA);//faz2高电平
PWM_setCmpA (myPwm3、0);//faz3为高电平
DELAY_US (10);
GPIO_setLow (myGpio、GPIO_Number_4);//faz1 LOW
GPIO_setLow (myGpio、GPIO_Number_0);//faz2低电平
GPIO_setHigh (myGpio、GPIO_Number_2);//faz3低电平
中断;

案例2:
PWM_setCmpA (myPwm1、0);
PWM_setCmpA (myPwm2、0);
PWM_setCmpA (myPwm3、CMPA);
DELAY_US (10);

GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setHigh (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
中断;

案例3:
PWM_setCmpA (myPwm1、0);
PWM_setCmpA (myPwm2、0);
PWM_setCmpA (myPwm3、CMPA);
DELAY_US (10);

GPIO_setHigh (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
中断;

案例4:
PWM_setCmpA (myPwm1、CMPA);
PWM_setCmpA (myPwm2、0);
PWM_setCmpA (myPwm3、0);
DELAY_US (10);

GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setHigh (myGpio、GPIO_Number_2);
中断;

案例6:
PWM_setCmpA (myPwm1、CMPA);
PWM_setCmpA (myPwm2、0);
PWM_setCmpA (myPwm3、0);
DELAY_US (10);

GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setHigh (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
中断;

案例1:
PWM_setCmpA (myPwm1、0);
PWM_setCmpA (myPwm2、CMPA);
PWM_setCmpA (myPwm3、0);
DELAY_US (10);

GPIO_setHigh (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);
中断;


默认值:
PWM_setCmpA (myPwm1、0);
PWM_setCmpA (myPwm2、0);
PWM_setCmpA (myPwm3、0);
DELAY_US (10);

GPIO_setLow (myGpio、GPIO_Number_4);
GPIO_setLow (myGpio、GPIO_Number_0);
GPIO_setLow (myGpio、GPIO_Number_2);


///------------------ 中断-------
_interrupt void ADC_ISR (void){

gas _pool[counter_ADC]= ADC_readResult (myAdc、ADC_ResultNumber_1);
if (counter_ADC=9) counter_ADC=0;
COUNTER_ADC++;
for (i=0;i<9;i++){
temp+=gas 池[i];

gastest=temp/10;

ADC_clearIntFlag (myAdc、ADC_IntNumber_1);
PI_clearInt (myPie、PI_GroupNumber_10);

中断空 CPU_Timer1_ISR (空){
/*
rpm=(int)(416666.66/(float)半周期);
error=期望值-rpm;
//积分
Integral_pool[integralpoolcounter]=错误;
integralpoolcounter++;
if (integralpoolcounter=intPOOLCOUNT) integralpoolcounter=0;
对于(j=0;<INTPOOLCOUNT;j++){
inttemp+=integral_pool[j];

Integral=KINTEGRAL *inttemp;
//导数
衍生品=KDERIVATIVE*(error-lasterror/INTEGRALCOUNTPIOD);
lasterror=错误;
//成比例
比例= ERROR*KPROPORTIONAL;
//结束
pidoutput=integral+proportion+derivative;*/


_interrupt void XINT1_ISR (void){//INTERRUPTLARDA HALL KACIRMAAK icin HEPSINE BAKIYORUZ 1. HALLDEN HIZ OKUMASI ALIYORUZ
/*if (timerstart){
半周期=0;
Timer_reload (myTimer);
timerstart=0;
}否则{
半周期=TIMER_getCount (myTimer);
timerstart=1;
}*/
HALL1 = GPIO_getData (myGpio、GPIO_Number_19);
PI_clearInt (myPie、PI_GroupNumber_1);


_interrupt void XINT2_ISR (void){//INTERRUPTLARDA HALL KACIRMAAK icin HEPSINE BAKIYORUZ

hall2 = GPIO_getData (myGpio、GPIO_Number_28);
PI_clearInt (myPie、PI_GroupNumber_1);

_interrupt void xint3_ISR (void){//INTERRUPTLARDA HALL KACIRMAAK icin HEPSINE BAKIYORUZ

hall3 = GPIO_getData (myGpio、GPIO_Number_29);
PI_clearInt (myPie、PI_GroupNumber_12);

///---------------------- PWM ---------------------------

void PWM_Init_()

CLK_enablePwmClock (myClk、PWM_NUMBER_2);
PWM_enableSockpulse (myPwm1);
PWM_setSockAPulseSrc (myPwm1、PWM_SockPulseSrc_CounterEqualCmpAcincr);
PWM_setSockAPeriod (myPwm1、PWM_SockPeriod_FirstEvent);
PWM_setPeriod (myPwm1、period);
PWM_setCounterMode (myPwm1、PWM_CounterMode_Up);
PWM_DisableCounterLoad (myPwm1);
PWM_setPhase (myPwm1、0x0000);
PWM_setCount (myPwm1、0x0000);
PWM_setHighSpeedClkDiv (myPwm1、PWM_HspClkDiv_BY_1);
PWM_setClkDiv (myPwm1、PWM_ClkDiv_BY_1);
PWM_setShadowImage Mode_cmpA (myPwm1、PWM_ShadowImage Mode_Shadow);
PWM_setLoadMode_CmpA (myPwm1、PWM_LoadMode_Zero);
PWM_setShadowImage Mode_CMPB (myPwm1、PWM_ShadowImage Mode_Shadow);
PWM_setLoadMode_CMPB (myPwm1、PWM_LoadMode_Zero);
PWM_setActionQual_Zero_PwmA (myPwm1、PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmA (myPwm1、PWM_ActionQual_clear);
PWM_setActionQual_Zero_PwmB (myPwm1、PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmB (myPwm1、PWM_ActionQual_clear);
PWM_setCmpA (myPwm1、0);
//死区 YAPMAMIZA gerek YOK CUNKU BIZ IKI FARKLI PWM KAYNAGINDAN SURUS YAPMIYORUZ
//low SIDELARA DIREK 5V VERIYORUZ
//Eger PWM 模块 A VE B DEN AYRI AYRI SURSEYDIK GEREKIRDI

void pwm2_Init_()

CLK_enablePwmClock (myClk、PWM_NUMBER_3);
PWM_enableSockpulse (myPwm2);
PWM_setSockAPulseSrc (myPwm2、PWM_SockPulseSrc_CounterEqualCmpAcincr);
PWM_setSockAPeriod (myPwm2、PWM_SockPeriod_FirstEvent);
PWM_setPeriod (myPwm2、period);
PWM_setCounterMode (myPwm2、PWM_CounterMode_Up);
PWM_DisableCounterLoad (myPwm2);
PWM_setPhase (myPwm2、0x0000);
PWM_setCount (myPwm2、0x0000);
PWM_setHighSpeedClkDiv (myPwm2、PWM_HspClkDiv_BY_1);
PWM_setClkDiv (myPwm2、PWM_ClkDiv_BY_1);
PWM_setShadowImage Mode_cmpA (myPwm2、PWM_ShadowImage Mode_Shadow);
PWM_setLoadMode_cmpA (myPwm2、PWM_LoadMode_Zero);
PWM_setShadowImage Mode_CMPB (myPwm2、PWM_ShadowImage Mode_Shadow);
PWM_setLoadMode_CMPB (myPwm2、PWM_LoadMode_Zero);
PWM_setActionQual_Zero_PwmA (myPwm2、PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmA (myPwm2、PWM_ActionQual_clear);
PWM_setActionQual_Zero_PwmB (myPwm2、PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmB (myPwm2、PWM_ActionQual_clear);
PWM_setCmpA (myPwm2、0);
//死区 YAPMAMIZA gerek YOK CUNKU BIZ IKI FARKLI PWM KAYNAGINDAN SURUS YAPMIYORUZ
//low SIDELARA DIREK 5V VERIYORUZ
//Eger PWM 模块 A VE B DEN AYRI AYRI SURSEYDIK GEREKIRDI

void pwm3/Init_()

CLK_enablePwmClock (myClk、PWM_NUMBER_1);
PWM_enableSockpulse (myPwm3);
PWM_setSockAPulseSrc (myPwm3、PWM_SockPulseSrc_CounterEqualCmpAcincr);
PWM_setSockAPeriod (myPwm3、PWM_SockPeriod_FirstEvent);
PWM_setPeriod (myPwm3、period);
PWM_setCounterMode (myPwm3、PWM_CounterMode_Up);
PWM_DisableCounterLoad (myPwm3);
PWM_setPhase (myPwm3、0x0000);
PWM_setCount (myPwm3、0x0000);
PWM_setHighSpeedClkDiv (myPwm3、PWM_HspClkDiv_BY_1);
PWM_setClkDiv (myPwm3、PWM_ClkDiv _BY_1);
PWM_setShadowImage Mode_cmpA (myPwm3、PWM_ShadowImage Mode_Shadow);
PWM_setLoadMode_cmpA (myPwm3、PWM_LoadMode_Zero);
PWM_setShadowImage Mode_CMPB (myPwm3、PWM_ShadowImage Mode_Shadow);
PWM_setLoadMode_CMPB (myPwm3、PWM_LoadMode_Zero);
PWM_setActionQual_Zero_PwmA (myPwm3、PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmA (myPwm3、PWM_ActionQual_clear);
PWM_setActionQual_Zero_PwmB (myPwm3、PWM_ActionQual_set);
PWM_setActionQual_CntUp_CmpA_PwmB (myPwm3、PWM_ActionQual_clear);
PWM_setCmpA (myPwm3、0);
//死区 YAPMAMIZA gerek YOK CUNKU BIZ IKI FARKLI PWM KAYNAGINDAN SURUS YAPMIYORUZ
//low SIDELARA DIREK 5V VERIYORUZ
//Eger PWM 模块 A VE B DEN AYRI AYRI SURSEYDIK GEREKIRDI

///------------------ 首字母缩写-------------------------------------------------------

void GPIO_init(){
GPIO_setMode (myGpio、GPIO_Number_19、GPIO_19_Mode_generalpurpose);
GPIO_setMode (myGpio、GPIO_Number_28、GPIO_28_Mode_generalpurpose);
GPIO_setMode (myGpio、GPIO_Number_29、GPIO_29_Mode_generalpurpose);
GPIO_setPullUp (myGpio、GPIO_Number_19、GPIO_PULLUP_Enable);
GPIO_setPullUp (myGpio、GPIO_Number_28、GPIO_PULLUP_Enable);
GPIO_setPullUp (myGpio、GPIO_Number_29、GPIO_PULLUP_Enable);
GPIO_setDirection (myGpio、GPIO_Number_19、GPIO_Direction_Input);
GPIO_setDirection (myGpio、GPIO_Number_28、GPIO_Direction_Input);
GPIO_setDirection (myGpio、GPIO_Number_29、GPIO_Direction_Input);
/*GPIO_setQualification (myGpio、GPIO_Number_19、GPIO_Qual_异 步);
GPIO_setQualification (myGpio、GPIO_Number_28、GPIO_Qual_异 步);
GPIO_setQualification (myGpio、GPIO_Number_29、GPIO_Qual_异 步);
//INTERRUPTLAR GIRMEZSE ACACILIRSIN
GPIO_setQualificationPeriod (myGpio、GPIO_Number_28、0xFF);*/
GPIO_setExtInt (myGpio、GPIO_Number_19、CPU_ExtIntNumber_1);
GPIO_setExtInt (myGpio、GPIO_Number_28、CPU_ExtIntNumber_2);
GPIO_setExtInt (myGpio、GPIO_Number_29、CPU_ExtIntNumber_3);


GPIO_setMode (myGpio、GPIO_Number_34、GPIO_34_Mode_generalpurpose);
GPIO_setDirection (myGpio、GPIO_Number_34、GPIO_Direction_Input);
GPIO_setPullUp (myGpio、GPIO_Number_34、GPIO_PULLUP_Enable);

//高
GPIO_setMode (myGpio、GPIO_Number_3、GPIO_3_Mode_EPWM2B);
//低
GPIO_setMode (myGpio、GPIO_Number_4、GPIO_4_Mode_generalpurpose);
GPIO_setDirection (myGpio、GPIO_Number_4、GPIO_Direction_Output);
GPIO_setLow (myGpio、GPIO_Number_4);
//高
GPIO_setMode (myGpio、GPIO_Number_5、GPIO_5_Mode_EPWM3B);
//低
GPIO_setMode (myGpio、GPIO_Number_0、GPIO_0_Mode_generalpurpose);
GPIO_setDirection (myGpio、GPIO_Number_0、GPIO_Direction_Output);
GPIO_setLow (myGpio、GPIO_Number_0);
//高
GPIO_setMode (myGpio、GPIO_Number_1、GPIO_1_Mode_EPWM1B);
//低
GPIO_setMode (myGpio、GPIO_Number_2、GPIO_2_Mode_generalpurpose);
GPIO_setDirection (myGpio、GPIO_Number_2、GPIO_Direction_Output);
GPIO_setLow (myGpio、GPIO_Number_2);

GPIO_setPullUp (myGpio、GPIO_Number_0、GPIO_PULLUP_Disable);
GPIO_setPullUp (myGpio、GPIO_Number_1、GPIO_PULLUP_Disable);
GPIO_setPullUp (myGpio、GPIO_Number_2、GPIO_PULLUP_Disable);
GPIO_setPullUp (myGpio、GPIO_Number_3、GPIO_PULLUP_Disable);
GPIO_setPullUp (myGpio、GPIO_Number_4、GPIO_PULLUP_Disable);
GPIO_setPullUp (myGpio、GPIO_Number_5、GPIO_PULLUP_Disable);



void delay_loop ()

短 I、j;
对于(j = 0;j < 1;j++){
对于(i = 0;i < 30000;i++){



错误:

****为项目 BLDC_DRIVER 构建配置调试****

"C:\\ti\\ccsv5\\utils\\bin\\gmake"-k all
'生成文件:./main.c'
'调用:C2000编译器'
"c:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000 -v28 -ml -mt --include_path="C:/ti/controlSUITE/device_support/f2802x/v230/f2802x_common --include_path="C:/ti/controlSUITE/device_support/f2802x/v230/f2802x_headers --include_path="C:/ti/ccsv5/tools/compiler/c2000_6.2.0/include --include_path="C:/ti/controlSUITE/development_kits/C2000_LaunchPad -g --diag_warning=dependency--display_error_number --diag_wrap=off --preproc_preproc_main_proc.ppru.c。
"./main.c"、第2行:致命错误#1965:无法打开源文件"common/include/adc.h"
1在编译"./main.c"时检测到灾难性错误。
编译已终止。

属性屏幕截图:

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    例如、如果您看一下 LaunchPadDemo 示例、您将在源文件 example_F2802xLaunchPadDemo.c 中看到#includes 的编写方式如下:

    #include "F2802x_common/include/adc.h"
    #include "F2802x_common/include/clk.h"

    请注意、包含这些头文件的目录的名称是 F2802x_common不常见

    如果将源文件中的#include 语句更改为如上所示、并且工程的编译器包含路径具有 C:\ti\controlSUITE\development_kits\c2000_LaunchPad (我认为它已经存在)、则应解决这些错误。

    希望这对您有所帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    非常感谢、我没有看到这些小错误。 但现在、它给了我另外两个错误、它们被删除了。

    ****为项目 BLDC 构建配置调试****

    "C:\\ti\\ccsv5\\utils\\bin\\gmake"-k all
    '生成文件:./main.c'
    '调用:C2000编译器'
    "c:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000 -v28 -ml -mt -include_path="C:/ti/ccsv5/tools/compiler/c2000_6.2.0/include --include_path="C:/ti/controlSUITE/development_kits/C2000_LaunchPad -g --diag_warning=225 --display_error_number --diag_wrap=off --preproc_with_compile --preproc_dependence="main.pP""..c/main.c"
    "./main.c"、第118行:警告#225-D:隐式声明函数"PIE_setDebugIntVectorTable"
    '完工建筑:./main.c'
    '
    '构建目标:BLDC.OUT"
    '调用:C2000链接器'
    "c:/ti/ccsv5/tools/compiler/c2000_6.2.0/bin/cl2000 -v28 -ml -mt -g -diag_warning=225 --display_error_number --diag_wrap=off -z -m"BLDC.map"--stack_size=0x300 --warn_SECTIONS -i"C:/ti/ccsv5/tools/compiler/c2000_6.2.0/lib --reread_lib_libs --reread_lib_lib_ram_modules"-"\con_line_display_linep_lib_rom_lib_lib_line.cmp_line_display_lib_lib_rom_rom_lib_line.html"/ti/ccsv5/tools/compiler/c2000_6.2.0/include -display_lib_lib_line_display_lib_rom_lib_lib_lib_rom_lib_line_display_lib_rom_linep_lib_rom_lib_lib_lib_lib_lib_lib_lib_rom_rom_lib_infote_display_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_lib_rom.

    警告#10247-D:在没有 SECTIONS 规范的情况下创建输出段"csm_rsvD"
    警告#10247-D:在不使用 SECTIONS 规范的情况下创建输出段"csmpasswds"

    "../28027_RAM_lnk.cmd"、行114:错误#10099-D:程序将无法放入可用内存中。 对齐/分块放置在".text"大小为0xd95的第0页上失败。 可用存储器范围:
    >>编译失败
    PRAML0大小:0x900未使用:0x900最大孔数:0x900
    错误#10010:链接期间遇到错误;未生成"BLDC.OUT"
    gmake:***[BLDC.OUT]错误1
    gmake:目标`全部'不会由于错误而重制。

    ****构建完成****

    当我单击"error#10099-D"时、它会显示该错误;

    /*
    // TI 文件$Revision:/main/5 $
    //签入$日期:2009年7月6日17:18:44 $
    //######################################################################################################################
    //
    //文件:28027_RAM_lnk.cmd
    //
    //标题:运行 RAM 的28027示例的链接器命令文件
    //
    //这仅包括28027器件上的所有 SARAM 块。
    //这不包括闪存或 OTP。
    //
    //请记住,L0受代码保护
    //安全模块。
    //
    //在大多数情况下,这意味着您要迁移到
    //另一个定义了更多内存的内存映射文件。
    //
    //######################################################################################################################
    //$TI 版本:DSP2802x 头文件内部版本2 $
    //$Release Date:2008年7月15日$
    //######################################################################################################################
    *

    /*===================================================================
    //适用于 Code Composer Studio V2.2和更高版本
    //--------------------------------------------------------
    //除了该内存链接器命令文件外,
    //将头文件链接器命令文件直接添加到工程中。
    //链接时需要标头链接器命令文件
    //将外设结构设置到内部的适当位置
    //存储器映射。
    //
    //在中找到了头文件链接器文件 \DSP2802x_headers\cmd
    //
    //对于 BIOS 应用程序添加:DSP2802x_Headers_BIOS.cmd
    //对于非 BIOS 应用程序添加:DSP2802x_Headers_nonBIOS.cmd
    =================================================================================================== *

    /*===================================================================
    //对于 V2.2之前的 Code Composer Studio
    //--------------------------------------------------------
    // 1)使用以下-l 语句之一来包含
    //项目中的头链接器命令文件。 头文件链接器
    //将外设结构链接到正确的文件
    //内存映射中的位置*/

    /*取消注释此行以仅包括非 BIOS 应用程序的文件*/
    /*-l DSP2802x_Headers_nonBIOS.cmd */

    /*取消注释此行以仅包括 BIOS 应用程序的文件*/
    /*-l DSP2802x_Headers_BIOS.cmd */

    /* 2)在项目中添加路径 \DSP2802x_headers\cmd 至
    库搜索路径位于 project->build options、linker tab、
    库搜索路径(-I)。
    /*================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================ *

    /*定义 DSP2802x 的存储器块开始/长度
    PAGE 0将用于组织程序段
    第1页将用于组织数据段

    注:
    F28027上的存储器块是一致的(也是相同的
    物理存储器)。
    不应该是相同的存储器区域
    同时为 PAGE 0和 PAGE 1定义。
    这样做将导致程序损坏
    和/或数据。

    L0存储器块被镜像-即
    它可以在高内存或低内存中访问。
    为简单起见、其中仅使用了一个实例
    链接器文件。

    可组合连续 SARAM 存储器块
    如果需要创建更大的存储器块。
    *

    存储器

    第0页:
    /*在本示例中,L0在第0页和第1页之间拆分*/
    /* begin 用于"引导至 SARAM"引导加载程序模式*/

    开始:origin = 0x000000,length = 0x000002
    RAMM0:origin = 0x000050、length = 0x0003B0
    PRAML0:origin = 0x008000、length = 0x000900
    复位:origin = 0x3FFFC0,length = 0x000002

    IQTABLES:origin = 0x3FE000,length = 0x000B50 //引导 ROM 中的 IQMath 表*/
    IQTABLES2:origin = 0x3FEB50,length = 0x00008C //引导 ROM 中的 IQMath 表*
    IQTABLES3:origin = 0x3FEBDC,length = 0x0000AA /*引导 ROM 中的 IQMath 表*/

    BootROM:origin = 0x3FF27C,length = 0x000D44


    第1页:

    /*在本示例中,L0在第0页和第1页之间拆分*/
    BOOT_RSVD:origin = 0x000002,length = 0x00004E // M0的一部分,引导 ROM 将使用此栈*/
    RAMM1:origin = 0x000400、length = 0x000400 //片上 RAM 块 M1 *
    DRAML0:origin = 0x008900,length = 0x000700


    部分

    /*"引导至 SARAM"模式的设置:
    codestart 段(可在 DSP28_CodeStartBranch.asm 中找到)
    将执行重定向到用户代码的开始。 *
    codestart:> begin,page = 0
    ramfuncs:>RAMM0 page = 0
    .text:>PRAML0,page = 0
    .cinit:> RAMM0,page = 0
    .pinit:> RAMM0,page = 0
    switch:>RAMM0,page = 0
    .reset:> reset,page = 0,type = DSECT //未使用,*/

    .stack:>RAMM1,PAGE = 1.
    .ebss:> DRAML0,PAGE = 1
    econst:>DRAML0,PAGE = 1
    .esysmem:>RAMM1,PAGE = 1.

    IQMath:>PRAML0,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)


    *
    /*如果调用 IQNasin ()或 IQasin (),请取消注释以下部分
    库中的函数、以便利用
    引导 ROM 中的相关 IQ Math 表(这可以节省空间和引导 ROM
    1个等待状态)。 如果此部分未注释、则为 IQmathTables2
    将被加载到其他存储器(SARAM、闪存等)中并将采用
    上行空间、但0等待状态是可能的。
    *
    /*
    IQmathTables3:> IQTABLES3,PAGE = 0,TYPE = NOLOAD

    IQMath.lib (IQmathTablesRam)


    *

    /*
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    //文件结束。
    //============================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================
    *

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user="user5232960"]。/28027_RAM_lnk.cmd",第114行:错误#10099-D:程序不能装入可用内存。 对齐/分块放置在".text"大小为0xd95的第0页上失败。 可用存储器范围:
    >>编译失败
    PRAML0大小:0x900未使用:0x900最大孔数:0x900
    错误#10010:链接期间遇到错误;"BLDC.OUT"未生成[/QUERP]

    有关此错误的解释、请访问 :https://processors.wiki.ti.com/index.php/Compiler/diagnostic_messages/10099

    为了了解根本原因以及如何修复这些错误、对链接器命令文件有一个基本的了解是很有帮助的。 为此、以下资源将会有所帮助:

    http://software-dl.ti.com/ccs/esd/documents/c2000_c28x-compiler-understanding-linking.html

    http://software-dl.ti.com/ccs/esd/documents/sdto_cgt_Linker-Command-File-Primer.html


    在您的情况下、您可以尝试通过增大 PRAML0 (.text 段分配给该存储器)的存储器长度并将 DRAML0的长度减小相同的数量(因为这两个存储器范围是连续的)来解决该问题。 但是、它也取决于应用程序中其他段的大小、例如分配给 DRAML0的.ebss 和.econst。 因此、如果您的应用程序太大而无法放入 RAM、这可能是不可行的。 在这种情况下、您可能需要移至基于闪存的配置。 许多 controlSUITE 示例都将 RAM 和闪存配置显示为参考。

    希望这对您有所帮助。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    很不错!! 我增加了 PRAML0的存储器长度、并将 DRAML0的存储器长度减小了相同的数量。 我很感谢。 但现在我收到了新的错误、即"0x3ff5f5"的源代码不可用"。 此外、在错误日志窗口中、在属于的位置出现错误;

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    有人可以帮帮我吗?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    [引用 user5232960]但现在出现了新的错误,“No source avalable for "0x3ff5f5"”。 除了在“错误日志”窗口中,还出现了属于的错误;[/引用]

    我要求今后为每一个新问题设立一个新员额,特别是因为原来的问题已经得到解决。 这有助于跟踪、也有利于在论坛中搜索相关问题的其他人。

    至于"no source available "错误、您是否将代码加载到闪存或 RAM 中? 报告的地址位于器件的引导 ROM 中。  
    此主题 包含有关消息的一些信息。

    我还建议从 controlSUITE 中加载类似示例、以检查是否会产生相同的错误。 如果没有、则将您的项目设置与示例进行比较、以查看有何不同。 如果该示例产生相同的错误、则可能与电路板上的 GPIO 引导模式设置有关。

    如果您在查看上述参考文献后仍然遇到问题、请在 C2000微控制器论坛中发布新帖子、以便那里的专家可以进一步为您提供帮助。