打印

MSP430产生SPEM波,输出波型前后各一个有问题,其他都好,望大神指点

[复制链接]
631|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
C:\Users\ThinkPad\Desktop

#include "MSP430G2553.h"
#include "math.h"
#define uchar unsigned char
#define uint unsigned int
unsigned char i;
unsigned int j=1,n=0,flot=0;
unsigned int spwm[50]= {
40,120,200,279,357,434,508,581,652,719,
785,846,905,960,1011,1059,1101,1140,1174,
1205,1229,1249,1264,1274,1279,1279,1274,1264,
1249,1229,1205,1174,1140,1101,1059,1011,960,
905,846,785,719,652,581,508,434,357,279,
200,120,40
};
void ini_sys(void);//时钟初始化
void TimerA_lnit();//定时器初始化
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  ini_sys();//时钟初始化
  TimerA_lnit();//定时器初始化
  _EINT();
  while(1);
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A(void)
{
  n++;
  if(flot==1)
  {
    TACCR1=spwm[n];
      TACCR2=0;   
    if(n==49)
    {
      n=0;
      flot=0;
    }   
  }
  else
  {
    TACCR2=spwm[n];
    TACCR1=0;
   if(n==49)
    {
      n=0;
      flot=1;
    }
  }
  P1IFG=0;
}
void TimerA_lnit()
{
  P1SEL|=BIT2+BIT6;
  P1DIR|=BIT2+BIT6;
  TACTL=TACLR+MC_1+TASSEL_2;  
  TACCR0=1600;
  TACCR1=TACCR2=spwm[n];
  TACCTL1=OUTMOD_6;
  TACCTL2=OUTMOD_6;
  TACCTL0|=CCIE;
}
void ini_sys(void)
{
BCSCTL2=SELM_1+DIVM_0;
BCSCTL1=CALBC1_8MHZ;
DCOCTL=CALDCO_8MHZ;
}
输出后第一个和最后一个波形发现了翻转现象,不知哪里出问题

相关帖子

沙发
破小孩|  楼主 | 2015-7-28 09:37 | 只看该作者
本帖最后由 破小孩 于 2015-7-28 09:38 编辑

C:\Users\ThinkPad\Desktop\QQ图片20150728092900.jpg

QQ图片20150728092900.jpg (200.91 KB )

QQ图片20150728092900.jpg

使用特权

评论回复
板凳
破小孩|  楼主 | 2015-7-28 16:41 | 只看该作者
大神来看一下

使用特权

评论回复
地板
dirtwillfly| | 2015-7-28 20:21 | 只看该作者
抱歉,不懂SPEM波。这个是什么东东?搜索都没搜索到

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝