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:OMAPL138

Guru**** 2606725 points


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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/633376/ccs-omapl138

工具/软件:Code Composer Studio

#include "L138_LCDK_aic3106_init.h"
包含"math.h"
#define sampling_FREQ 8000
#Define PI 3.14159265358979
#define LOOPLENGTH 64

void sine_wave (void)

浮动频率= 1000.0 ;
浮动振幅= 2万.0 ;
浮点theta_increment;
浮子theta = 0.0 ;

中断无效中断4(void);

theta_increment = 2*PI*频率/采样频率;
theta += theta_increment;
如果(theta >2*PI)
Theta -=2*PI;
output_left_sample(((Int16_t)(amplits*sin (theta));
返回;
}
}


void square_wave (void)

Int16_t square_table[LOOPLENGTH]={
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万
};

int16_t loopindex = 0;

interrupt void interrupt4(void);//中断服务例程

output_left_sample(square_table[loopindex+]);
IF (loopindex >= LOOPLENGTH)

环比指数=0;
返回;
}
}
}

void RamP_wave (void)

Int16_t输出=0;

interrupt void interrupt4(void);//中断服务例程

output_left_sample(output);//输出到L DAC
OUTPUT +=2000;//递增输出值
如果(输出>= 3万)//如果达到峰值
输出=-3万;//重新初始化
返回;
}
}
INT MAIN ()

内部通道;
printf ("\n波形菜单");
printf ("\n输入您的波形表单");
printf("\n1. 正弦波");
printf("\n2. 方波");
printf("\n3. 斜坡波");
printf("\n\n输入您的选择:");
扫描("%d",&ch);

开关(ch)

案例1:
L138_initialize_intr (FS_8000_Hz,ADC_GANE_0dB,DAC_ATTEN_0dB,LCDK_LINE_INPUT);
同时(1);
中断;
案例2:
L138_initialize_intr (FS_8000_Hz,ADC_GANE_0dB,DAC_ATTEN_0dB,LCDK_LINE_INPUT);
同时(1);
中断;
案例3:
L138_initialize_intr (FS_8000_Hz,ADC_GANE_0dB,DAC_ATTEN_0dB,LCDK_LINE_INPUT);
同时(1);
中断;
}
}

它有以下错误

说明资源路径位置类型
未解析的符号_interrupt4,首先在./vects_intre.obj sinenn C/C++问题中引用

说明资源路径位置类型
<a href="file:/ti/ccsv5/tools/compiler/dMED/HTML/1.0234万.html">#10234-D</A>未1.0234万未解析的符号仍然是sinenn C/C++问题

说明资源路径位置类型
#1.001万链接期间发生错误;"sinenn.out not built sinenn C/C++ problem

请帮助对这些错误进行排序

控制台窗口:

****生成配置调试项目正项****

"C:\\ti\\ccsv5\\utils\\bin\\gmake "-k all
'建筑文件:../main.c'
'调用:C6000编译器'
"C:7.4 7.4 .4/include"-mv6740 --abi=coffabi -g --include_path="C:/ti/ccsv5/tools/compiler/C6000_proc.4/include"--include_path="C:/users/Mahe/Desktop/diag-prediag_off/pre-compreate_proc -rema_d告-rew_-c=48"-rema_proc_rema_rema_rema_presl=davore.4/inc_presc=reprilence.cruel=
"../main.c",第81行:警告#112-D:无法访问语句
"../main.c",第85行:警告#112-D:无法访问语句
"../main.c",第89行:警告#112-D:无法访问声明
'完成的建筑:../主楼C
''
'正在构建目标:sinenn.out '
'调用:C6000链接器'
c:/ti/ccsv5/tools/compiler/C6000_cmr.4/bin/cl6x" 7.4 -mv6740 --abi=coffabi -g --define=C6748 --display_error_number ---indiag_warning=225 --wwrap_wrap=off -z --stack_size=0x800 -m"sinenn.map_link_extrab_l_l_l/rema_ex-z_l/rema_in_-z_l.cru_-z_-c"-cab_lin_lin_l_l.cru_l_-cab_----cab_l/rema_---c3.k/rema_l_l/rema_l_-cab_-----cabi_--------/rema_l_l_l.cru_---/-----/rema_l_l_------/rema_l.cru_-/----/ 7.4 7.4
链接>

未定义的第一个引用
文件中的符号
------------------- --------
_interrupt4 ./vects_intr.obj

错误#1.0234万-D:仍存在未解析的符号

错误#1.001万:链接时遇到错误;未生成"sinenn.out
>>编译失败
gmake:***[sinenn.ut]错误1
gmake:target `all' not remake because of errors.

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

谢谢你

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    为什么您编程中有三个具有相同函数名称(即interrupt4)的中断?

    将函数原型放在vects_intr.c的顶部,即interrupt void interrupt4(void);

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

    每个这些中断声明4都在另一个函数中。 这相当令人困惑;乍一看,您似乎是在尝试将interrupt4声明为另一个函数(不是合法的C代码)内的函数。 但是,再看一下,您真正得到的只是一堆不必要的块,它们使它看起来如此。 考虑:

    void sine_wave (void)
    {
    浮动频率= 1000.0 ;
    浮动振幅= 2万.0 ;
    浮点theta_increment;
    浮子theta = 0.0 ;
    
    中断无效中断4(void);
    { 
    theta_increment = 2*PI*频率/采样频率;
    theta += theta_increment;
    如果(theta >2*PI)
    Theta -=2*PI;
    output_left_sample(((Int16_t)(amplits*sin (theta));
    返回;
    } 
    } 

    这应该是:

    void sine_wave (void)
    {
    浮动频率= 1000.0 ;
    浮动振幅= 2万.0 ;
    浮点theta_increment;
    浮子theta = 0.0 ;
    
    theta_increment = 2*PI*频率/采样频率;
    theta += theta_increment;
    如果(theta >2*PI)
    Theta -=2*PI;
    output_left_sample(((Int16_t)(amplits*sin (theta));
    返回;
    } 

    我想,如果你作出这项调整,你会发现问题会更清楚。