谁可以写个这样的程序给我来参考参考啊

2019-03-24 11:11发布

有哪位大虾帮我这个新手编一下面的程序,小弟感觉不尽。
要求:1用msp430g2553.h实现。
           2实现如下功能,每十秒钟灯光闪烁一次,每2秒灯光亮度变化一次,按键按一次延时时间增加5秒灯光亮度变化相反。

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
qinkaiabc
1楼-- · 2019-03-24 18:46
用定时器实现定时。相关状态用标识判断。
sgy52401314
2楼-- · 2019-03-24 20:04
< :TI_MSP430_内容页_SA7 --> #include<msp430g2553.h>
void P1_IODect();
void P13_Onclick();
void GPIO_init();
volatile unsigned int n,m,i=0;
unsigned const PWMperiod=15000;
void main(void)
{   WDTCTL=WDTPW+WDTHOLD;
    int i=0;
    i=i+1;
   
    GPIO_init();
    DCOCTL=0x00;
    DCOCTL=CALDCO_1MHZ;
    BCSCTL1=CALBC1_1MHZ;
    TACTL=TASSEL_2+MC_1;
    TACCR0=PWMperiod;
    TACCTL1=OUTMOD_7;

    _EINT();
   LPM0;
   

}
void GPIO_init()
{
    P1DIR|=BIT6;
    P1SEL|=BIT6;
    P1REN|=BIT3;
    P1OUT|=BIT3;
    P1DIR&=~BIT3;
    P1IES|=BIT3;
    P1IE|=BIT3;
   
}

#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR(void)
{
    P1_IODect();
    P1IFG=0;
}
void P1_IODect()
{
  unsigned int Push_Key=0;
  Push_Key=P1IFG&(~P1DIR);
  __delay_cycles(10000);
  if((P1IN&Push_Key)==0)
  {
      switch(Push_Key)
      {
      case BIT3:  P13_Onclick(); i++;   break;
      default:                      break;
      }
  }
}
void P13_Onclick()
{
    if(i/2==1)
    {
      for(n=0;n<PWMperiod;n++)
      {
          TACCR1=n;
      }
   
    }
    if(i/2==1)
    {
        for(m=PWMperiod;m>0;m--)
        {
            TACCR1=m;
        }
    }
  

}

一周热门 更多>

相关问题

    相关文章