资源简介
这是基于MSP430F5529单片机实现的PWM程序,最后输出的正弦波,通过改变占空比实现。
代码片段和文件信息
#include
int m=0;
int Sin[]={64677073767982858891949699102
104106109111113115117118120121123124
125126126127127127127127127127126126125
124123121120118 117115113111109106104102
999694918885827976737067646057545148
4542393633312825232118161412109764
3211000000011234679101214161821
2325283133363942454851545760};
/*
* main.c
*/
int main(void) {
//int i;
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
UCSCTL1 |= XTS; //选择ACLK=LFXT,高频
/*do
{
IFG1&=~OFIFG; //清除晶体故障标志位
for(i=0xFF;i>0;i--); //延时
}
while((IFG1&0FIFG)!=0); //晶体故障标志无置位
IFG1&=~OFIFG; //清除晶体故障标志*/
UCSCTL2 |= SELM_3; //CPU主时钟MCLK=LFXT18MHz
P2SEL|=BIT3+BIT4+BIT5;
P2DIR|=BIT3+BIT4+BIT5;
P2OUT|=BIT3+BIT4+BIT5;
P1DIR|=BIT0;
TA2CTL |= ID_1+TASSEL_1+MC_1; //MC_1增模式
//TA2CCTL0=CCIE; //捕获比较寄存器0中断允许
TA2CCTL1=OUTMOD_7; //捕获比较1输出模式7
TA2CCR0=256;//PWM计数周期
//__bis_SR_register(LPM3_bits+GIE); //芯片低功耗,GIE全局中断使能
//__no_operation();
while(1)
{
if(m>127)
m=0;
else
m++;
P1OUT ^= 0x01;
TA2CCR1=Sin[m];
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1365 2015-04-23 21:12 main.c
----------- --------- ---------- ----- ----
1365 1
评论
共有 条评论