<Linking>
undefined first referenced
symbol in file
--------- ----------------
_EvaRegs C:\\CCStudio_v3.3PLA\\MyProjects\\qwm\\Debug\\PWM.obj
_GpioMuxRegs C:\\CCStudio_v3.3PLA\\MyProjects\\qwm\\Debug\\PWM.obj
_SysCtrlRegs C:\\CCStudio_v3.3PLA\\MyProjects\\qwm\\Debug\\PWM.obj
error: unresolved symbols remain
error: errors encountered during linking; "./Debug/qwm.out" not built
>> Compilation failure
源程序
#include "DSP281x_Device.h"
#include "DSP281x_SysCtrl.h"
#include "DSP281x_Gpio.h"
#include "DSP281x_Ev.h"
void InitSysCtrl(void) //系统初始化
{
Uint16 i;
EALLOW;
SysCtrlRegs.WDCR=0x0068; //禁止看门狗
SysCtrlRegs.PLLCR.all=0xA; //初始化PLL
for(i=0;i<5000;i++)
{}
SysCtrlRegs.HISPCP.all=0x0001; //HSPCLK=75MHz
SysCtrlRegs.LOSPCP.all=0x0002; //LOSPCP=37.5MHz
SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; //使能EVA时钟
EDIS;
}
void InitGpio(void)
{
EALLOW;
GpioMuxRegs.GPAMUX.bit.PWM1_GPIOA0=1;
GpioMuxRegs.GPAMUX.bit.PWM2_GPIOA1=1;
GpioMuxRegs.GPAMUX.bit.PWM3_GPIOA2=1;
GpioMuxRegs.GPAMUX.bit.PWM4_GPIOA3=1;
EDIS;
}
void InitEv(void)
{
EvaRegs.T1CON.bit.TMODE=2; //连续增模式
EvaRegs.T1CON.bit.TPS=1; //T1CLK=75/2=37.5MHz
EvaRegs.T1CON.bit.TENABLE=0; //暂时禁止T1计数
EvaRegs.T1CON.bit.TCLKS10=0; //使用内部时钟T1CLK
EvaRegs.T1PR=0x03cf;
EvaRegs.T1CNT=0;
EvaRegs.COMCONA.bit.CENABLE=1; //使能比较单元的比较操作
EvaRegs.COMCONA.bit.FCOMPOE=1; //使能输出
EvaRegs.COMCONA.bit.CLD=2;
//死区时间4.27us
EvaRegs.DBTCONA.bit.DBT=10; //死区定时器周期,m=10
EvaRegs.DBTCONA.bit.EDBT1=1; //死区定时器1使能
EvaRegs.DBTCONA.bit.EDBT2=1; //死区定时器2使能
EvaRegs.DBTCONA.bit.DBTPS=4; //死区定时器预定标因子
EvaRegs.ACTRA.all=1; //设定引脚PWM1~6的动作属性,低电平有效
EvaRegs.CMPR1=0x01e8; //PWM1、2的占空比50%
EvaRegs.CMPR2=0x01e8; //PWM3、4的占空比50%
}
main(void)
{
InitSysCtrl();
DINT;
IER=0x0000;
IFR=0x0000;
InitGpio();
InitEv();
EvaRegs.T1CON.bit.TENABLE=1;
for(;;)
{
}
}
|