这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界» 论坛首页» 嵌入式开发» MCU» msp430产生一定数量的方波程序

共3条 1/1 1 跳转至

msp430产生一定数量的方波程序

菜鸟
2012-05-30 13:52:29 打赏

本段程序主要用在msp430控制40k超声波测距的产生一定的pwm波形来控制触发超声波探头来发送和接收。
此部分只做超声波驱动程序。

#include
unsigned int i;
void int_clk()
{
unsigned int iq0;
BCSCTL1 &=~XT2OFF; //打开时钟振荡器
do
{
IFG1 &= ~OFIFG; // 清除振荡器失效标志
for (iq0 = 0xFF; iq0 > 0; iq0--); // 延时,等待XT2起振
}
while ((IFG1 & OFIFG) != 0); // 判断XT2是否起振
BCSCTL2 |=SELM_2 + SELS; //MCLK,SMCLK时钟为XT2
}
void timera0(void) //定时器a设置
{
TACCTL0 |= CCIE;
TACCR0 = 200; //设置周期8m/200=40k
}
void timera1(void) //定时器b设置
{
P1SEL |= BIT2;
P1DIR |= BIT2;
TACCTL1 |= OUTMOD_7; //pwm输出模式7
TACCR1 = 100; //设置占空比为50%
}
void main()
{
WDTCTL = WDTPW + WDTHOLD;
int_clk();
TACTL = TASSEL_2 + MC_1;
timera1();
timera0();
_EINT();
while(1);
}
#pragma vector = TIMERA0_VECTOR
__interrupt void timera0_isr(void)
{
i++;
if(i==10) //产生10个方波之后将占空比调整 为100%
{
TACCR1 = 215; //此处设置为215也是为了让其有点 延时保持最终输出高电平
CCTL0 &=~ CCIE;
}
}




关键词: msp430 产生 一定 数量 方波 程序

工程师
2012-06-14 15:50:29 打赏
2楼
学习了,谢谢

高工
2012-09-04 22:21:28 打赏
3楼
呵呵,不错~!

共3条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册]