主题中讨论的其他器件:C2000WARE
工具/软件:Code Composer Studio
我只是尝试使用 DAC 来绘制信号。 我使用信号生成模块来实时生成正弦信号。 信号生成模块的数据类型为 IQ15数据类型。 我尝试将其转换为12位数字格式(int32或 int16),我能问我如何做? 信号生成模块的代码片段如下所示:
#include "DSP28x_Project.h"//器件头文件和示例 include 文件
#include
#define SIGON_LENGTH 512
/*创建信号发生器模块的实例*/
SGENHP_1 sgen = SGENHP_1_DEFAULTS;
#pragma DATA_SECTION (ipcb、"SGENipcb");
int ipcb[signal_length];
/*用于存储信号 genr 输出的 Temp 变量*/
内部 x1;
void main()
{
unsigned long i;
InitSysCtrl();
Dint;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EINT;//启用全局中断 INTM
ERTM;//启用全局实时中断 DBGM
/*信号发生器模块初始化*/
sgen.offset=0;
sgen.gain=0x7fff;// Q15中的 gain=1 */
sgen.freq=0x14F8CF92;/* freq =(必需频率/最大频率)*2^31 */
/*=(50/305.17)*2^31 = 0x14f8cf92 */
sgen.step_max=0x3E7FB26;// Max Freq=(step_max *采样频率)/2^32 */
/*最大频率=(0x3E7FB26*20k)/2^32 = 305.17 */
sgen.alpha=536870912;/* PHASE_NORM =(PI/4/(2*PI))*2^16=8192 */
for (i=0;<SIGNAL_LENGTH;i++))
{
ipcb[i]=0;
}
for (i=0;<SIGNAL_LENGTH;i++))
{
sgen.calc(&sgen);
x1=sgen.out;
ipcb[i]=x1;
}
for (;;);
}/*结束:main()*/