TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430

定时中断那一部分一直报错,输出不了SPWM波形,下面是我的程序

#include"msp430g2553.h"
#define cSMCLK 12000000
#define SIN_F 200                 //定义输出正弦波频率为200hz
#define SIN_NUM 16                //定义正弦波查表采样点数
const unsigned int sin_table[SIN_NUM]={64,88,108,122,127,122,108,88,64,39,19,5,0,5,19,39};
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;            //关闭看门狗
BCSCTL1 = CALBC1_12MHZ;             //设置定时器时钟为12mhz
DCOCTL = CALDCO_12MHZ;              //DCO频率设置为12mhz
DCOCTL = DCOCTL&0xE0;               //关闭震荡
TA1CTL= TASSEL_2+MC_1;              //TA1设置为增计数模式,时钟为SMCLK(12mhz)
TA1CCTL1|= OUTMOD_7;                   //TA1模块设置为模式7输出
P2SEL|= BIT1;
P2DIR|= BIT1;                     //P2.1为输出口
TA1CCR0=128;  //pwm周期为128hz
Timer0_A_lnit();
}
void Timer0_A_lnit()
{
TA0CCTL0 = CCIE;
TA0CCR0 = cSMCLK/SIN_F/SIN_NUM;
TA0CTL= TASSEL_2 + MC_1;               //TA0为增计数模式,时钟为SMCLK(12mhz)
_EINT();                                //开中断
}
//读表
#pragma vector=TIMERA0_VECTOR
__interrupt void Timer0_A0_(void)
{
_disable_interrupts();
Change_Duty;
__enable_interrupts();
}

Susan Yang:

我会在明天拿板子试一下后给您回复

灰小子:

楼主你好,请问出现的错误内容是什么?
在中断服务程序中有个“Change_Duty;”,这是函数吗?是函数的话应该带括号,类似这样Change_Duty();

Susan Yang:

您是否有产生如下warning

https://processors.wiki.ti.com/index.php/Compiler/diagnostic_messages/225

警告是说在进行函数调用之前没有看到函数声明或定义。.c文件内未定义此函数或者定义了此函数,但是由于在调用时没有可见的函数原型,也会生成警告。

如楼上所述,您需要添加

void Change_Duty();void Timer0_A_lnit();

并修改中断服务程序内的Change_Duty;为  Change_Duty();

建议您参考下TI给出的相关例程

http://dev.ti.com/tirex/explore/node?node=AC3TbMt22rGsmQsyItla2A__IOGqZri__LATEST

在CCS内新建MSP430G2553的工程,而后将例程代码添加进去并进行修改,会相对方便一些

user6327139:

回复 Susan Yang:

好像就是这个错误,没有怎么定义,我是才开始学MSP430 单片机,您发的这个历程好像打不开,可以重新发一下吗

Susan Yang:

回复 user6327139:

那您可以在下面的链接下载独立版本的MSPWARE (MSPWare for MSP430 Microcontrollers)

http://www.ti.com/tool/MSPWARE

安装后默认路径为

C:\ti\msp\MSP430Ware_3_80_07_00\examples\devices\MSP430G2xx\MSP430G2xx3_Code_Examples\C

下面的3个例程都是关于PWM的

msp430g2xx3_ta_17.cTimer_A, PWM TA1, Up Mode, 32kHz ACLK
msp430g2xx3_ta_19.cTimer_A, PWM TA1, Up/Down Mode, DCO SMCLK
msp430g2xx3_ta_20.cTimer_A, PWM TA1, Up/Down Mode, 32kHz ACLK

user6327139:

回复 Susan Yang:

请问一下有没有SPWM的例程呢

Susan Yang:

回复 user6327139:

您可以参考一下文档

www.ti.com/…/slaa116a.pdf

以及

www.msp430launchpad.com/…/simple-launchpad-dac.html

gist.github.com/…/1012810

user6327139:

回复 Susan Yang:

有没有程序代码参考一下呢

Susan Yang:

回复 user6327139:

上面的链接有代码的,请看一下

user6327139:

回复 Susan Yang:

我这里不知道为什么有的链接打不开,请您把代码复制了回复我可以吗。

赞(0)
未经允许不得转载:TI中文支持网 » MSP430
分享到: 更多 (0)