今天翻出来了十年前的MSP430G2开发板,写一个专业的点灯

[复制链接]
1309|3
手机看帖
扫描二维码
随时随地手机跟帖
gaoyang9992006|  楼主 | 2025-1-6 20:13 | 显示全部楼层 |阅读模式
该开发板为G2LaughPad V1.5
按钮为P1.3
LED为P1.0和P1.6
好久没用MSP430了,写代码要专业一点,不能学参考代码之间就对寄存器操作
#include "intrinsics.h"
#include "msp430g2553.h"

#include <msp430.h>

void led_init(void)
{
  P1DIR |= BIT0|BIT6;       //LED1和LED2所在引脚设置为输出模式
  P1OUT &= ~(BIT0|BIT6);    //LED1和LED2所在引脚设置为初始化输出低电平
}

void button_init(void)
{
  P1DIR &=~BIT3;            //S2引脚在P1.3,设置为输入模式,配置为上拉电阻
  P1REN |= BIT3;
  P1OUT  = BIT3;
}
void led1_on(void)
{
  P1OUT |=BIT0;
}
void led2_on(void)
{
  P1OUT |=BIT6;
}
void led1_off(void)
{
  P1OUT &=~BIT0;
}
void led2_off(void)
{
  P1OUT &=~BIT6;
}

int main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop watchdog timer
  button_init();
  led_init();
  for (;;)
  {
    if((BIT3&P1IN)==BIT3)
    {      
      led1_on();
      __delay_cycles(500000);
      led2_on();
      __delay_cycles(500000);
      led1_off();
      __delay_cycles(500000);
      led2_off();
      __delay_cycles(500000);
    }   
    else
    {
      led1_on();
      led2_on();
      __delay_cycles(500000);
      led1_off();
      led2_off();
      __delay_cycles(500000);
    }
   
  }
}


使用特权

评论回复

相关帖子

gaoyang9992006|  楼主 | 2025-1-6 20:14 | 显示全部楼层
这样就方便修改,也可以避免操作到了其他不相干的位,比如P1.0,要在P1OUT对应的BIT3输出高电平才可以使得内部上拉电阻工作。

使用特权

评论回复
yueguang3048| | 2025-1-9 09:16 | 显示全部楼层
看着像51的风格

使用特权

评论回复
gaoyang9992006|  楼主 | 2025-1-9 10:36 | 显示全部楼层

是的,早期的51,MSP430,AVR,PIC都是寄存器操作,看着风格像。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:如果你觉得我的分享或者答复还可以,请给我点赞,谢谢。

1996

主题

16065

帖子

211

粉丝