gaoyang9992006 发表于 2025-1-6 20:13

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

该开发板为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

yueguang3048 发表于 2025-1-9 09:16
看着像51的风格

是的,早期的51,MSP430,AVR,PIC都是寄存器操作,看着风格像。
页: [1]
查看完整版本: 今天翻出来了十年前的MSP430G2开发板,写一个专业的点灯