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

共3条 1/1 1 跳转至

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

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

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

#include<msp430f149.h>
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 跳转至

回复

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