Other Parts Discussed in Thread: OMAP-L138, TMS320C6748
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320C6748 主题中讨论的其他器件:OMAP-L138、
工具/软件:Code Composer Studio
我一直在使用几本书来尝试为 TMS3260C6748 LCDK 上的几个通道制作正弦波发生器。 但是、每次我尝试输出1kHz 频率时、我都会从示波器和手机上使用 FFT 获得大约243Hz 的频率。 我尝试了使用差分方程和正弦表来生成符号的两种方法。 我开始相信它与 LCDK 的时钟生成有关、但我尝试过采样频率的多次更改、但没有如我所期望的那样发生任何变化。 我还尝试提高 LCDK 的时钟频率、看看是否会有变化、但我没有看到任何变化。 这里是我用来生成正弦波的一些示例代码。 此代码取自"数字信号处理和 OMAP-L138实验板应用"。 它们还提供了用于 LCDK 的文件、这些文件是我在本示例中使用的文件。
// l138_sine48_Buf_intr.c // #include "L138_LCDK_aic3106_init.h" #define LOOPLENGTH 48 #define BUFLENGTH 256 int16_t sine_table[LOOPLENGTH]= {0、1305、2588、3827、5000、 6088、7071、7934、 8660、9239、 9659、9914、10000、9914、9659、 9239、 8660、7934、7071、6088、 5000、3827、2588、1305、 0、 -1305、-2588、-3827、-5000、-6088、 -7071、-7934、 -8660、-9239、-9659、 -9914、-10000、-9914、-9659、-9239、 -8660、-7934、-7071、-6088、-5000、 -3827、-2588、-1305}; int16_t sine_ptr = 0;//指向查找表 的指针 int32_t buffer[BUFLENGTH]; int16_t buf_ptr = 0; 中断 void interrupt4 (void)//中断服务例程 { int16_t sample; sample = sine_table[sine_pt]; //从表 output_left_sample_sample (sample)中读取样本; //输出样本 sine_ptr =(sine_ptr+1)%LOOPLENGTH;//递增表索引 buffer[buf_ptr]=(int32_t)(sample);//将样本存储在缓冲区 buf_ptr =(buf_ptr+1)%BUFLENGTH; //递增缓冲区索引 返回; } int main (void) { L138_initial_intr (FS_48000_Hz、ADC_GAIN_0dB、DAC_ATTEEN_0dB、LCDK_LINE_INPUTIN); while (1); }
是否有人遇到过类似的问题?