打印
[技术求助]

求大神帮助,不同电压转换成不同频率pwm问题

[复制链接]
705|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sunpenglie08|  楼主 | 2014-7-28 10:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
模拟量输入 p1.0/a0
输出pwm  p2.0/ta1.0
参考电压  p1.4
写的一段程序  但是检测不到pwm输出  求大神指点
#include "MSP430G2553.h"

const unsigned int table[1024]={电压值对应不同的周期
};
int main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;
  ADC10CTL1 = CONSEQ_2+ADC10SSEL_2;    // TA0 trigger
  ADC10CTL0 = ADC10SHT_2 + MSC + ADC10ON + ADC10IE + SREF_2 ;
  ADC10DTC1 = 0x01;

  ADC10AE0 |= 0x01;
  ADC10CTL0 |=ENC+ADC10SC;
  while(1)
  {
  ADC10CTL0 &= ~ENC;
    while (ADC10CTL1 & BUSY);               // Wait if ADC10 core is active
    ADC10SA = 0x200;



  TACTL |= TASSEL1+TACLR;                           
  TACCR0=table[ *(int *)0x200];
  TACCTL1=OUTMOD_7;
  TACCR1= table[ *(int *)0x200]/2;
  P2DIR |= 0x01;
  P2SEL |= 0x01;
  TACTL |=MC_1;


    ADC10CTL0 |= ENC;                       // Sampling and conversion ready
    __bis_SR_register(LPM3_bits + GIE); // Enter LPM3, enable interrupts
                             // Toggle P1.0 using exclusive-OR
  }

}

// ADC10 interrupt service routine
#pragma vector=ADC10_VECTOR
__interrupt void ADC10_ISR(void)
{
  __bic_SR_register_on_exit(LPM3_bits);     // Clear LPM3 bits from 0(SR)
}

相关帖子

沙发
airwill| | 2014-7-28 15:42 | 只看该作者
新人提问吧,
上来没头没脑的帖一通代码, 仔细看了代码, 才知道是 MSP430 的芯片.
写代码容易, 调试难. 建议楼主学习一些调试技巧, 用好自己的仿真器.
功能不复杂, 肯定是能够实现的.
代码一点点写, 边写边验证.

使用特权

评论回复
板凳
sunpenglie08|  楼主 | 2014-7-29 15:50 | 只看该作者
airwill 发表于 2014-7-28 15:42
新人提问吧,
上来没头没脑的帖一通代码, 仔细看了代码, 才知道是 MSP430 的芯片.
写代码容易, 调试难. 建议 ...

有输出但是周期很大6s

使用特权

评论回复
地板
sunpenglie08|  楼主 | 2014-7-29 15:50 | 只看该作者
airwill 发表于 2014-7-28 15:42
新人提问吧,
上来没头没脑的帖一通代码, 仔细看了代码, 才知道是 MSP430 的芯片.
写代码容易, 调试难. 建议 ...

有输出但是周期很大6s

使用特权

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

本版积分规则

2

主题

4

帖子

0

粉丝