標(biāo)題:
MSP430單片機(jī)TA定時(shí)器輸出PWM信號(hào)C語(yǔ)言程序
[打印本頁(yè)]
作者:
wendi
時(shí)間:
2013-7-11 03:05
標(biāo)題:
MSP430單片機(jī)TA定時(shí)器輸出PWM信號(hào)C語(yǔ)言程序
//MSP430F149 TimerA 輸出pwm信號(hào),注意其中寄存器設(shè)置與pwm信號(hào)輸出引腳的對(duì)應(yīng)關(guān)系,P1.2-TA1,TACCR1,TACCTL1;,P1.3-TA2, TACCR2,TACCTL2。
#include <msp430x14x.h>
#define uint unsigned int
#define uchar unsigned char
void int_clk()
{
uchar i;
BCSCTL1 &= ~XT2OFF; //打開(kāi)XT振蕩器
BCSCTL2 |= SELM1+SELS; //MCLK為8MHz,SMCLK為8MHz
do
{
IFG1&=~OFIFG; //清除振蕩錯(cuò)誤標(biāo)志
for(i=0;i<100;i++)
_NOP(); //延時(shí)等待
}
while((IFG1&OFIFG)!=0); //如果標(biāo)志為1,則繼續(xù)循環(huán)等待
IFG1&=~OFIFG;
}
void int_pwm()
{
P1SEL |= BIT2 + BIT3 ; //選擇 p1.2-TA1 ,P1.3-TA2 作為PWM輸出 第二功能
P1DIR |= BIT2 + BIT3 ;
TACCR0 = 800; //PWM信號(hào)頻率10KHZ
TACCR1 = 200 ; // 占空比1:1
TACCTL1 = OUTMOD_7;
TACCR2 = 400 ;
TACCTL2 = OUTMOD_7;
TACTL |= TASSEL1 +ID1 + ID0 + MC0 ; //選擇SMCLK 增加模式
}
void main()
{
WDTCTL = WDTPW + WDTHOLD ;
int_clk();
int_pwm();
while(1);
}
作者:
菜鳥(niǎo)上路
時(shí)間:
2014-1-3 14:54
沒(méi)看懂為什么把TACCR0設(shè)為800,TACCR1=200,是PWM的相關(guān)計(jì)算嗎?
作者:
逍遙龍III
時(shí)間:
2014-1-19 10:33
學(xué)習(xí)一下、、、
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1