2019 年全国大学生电子设计竞赛 电动小车动态无线充电系统(A 题)

摘要:设计并制作一个无线充电电动小车及无线充电系统,电动小车可采用成品车 改制,全车重量不小于 250 g,外形尺寸不大于 30cm×26cm,圆形无线充电装置 发射线圈外径不大于 20cm。无线充电装置的接收线圈安装在小车底盘上,仅采用 超级电容(法拉电容)作为小车储能、充电元件。

#include "driverlib.h"

#define KEY1 GPIO_getInputPinValue( GPIO_PORT_P2, GPIO_PIN1)
#define GPIO1 GPIO_getInputPinValue( GPIO_PORT_P3, GPIO_PIN0)
#define GPIO2 GPIO_getInputPinValue( GPIO_PORT_P3, GPIO_PIN1)

/*
#include  "msp430f5529.h"

#define CPU_F ((double)25000000)
int count=0;
void Time_Init(void)
{
  TA1CTL=TACLR+TAIE+MC_1+TASSEL_1;//3W2768HZ
  TA1CCR0=32767;
  _EINT();
}
#pragma vector=TIMER1_A1_VECTOR
__interrupt void Timer1_A1(void)
{
  switch(TA1IV)
  {
  case TA1IV_TACCR1:break;
  case TA1IV_TACCR2:break;
  case TA1IV_TAIFG:P1OUT^=BIT0;break;
  }
}
*/

void Delay_ms(int nr){
  for(short i=0;i<nr; i++){
       __delay_cycles(8000);
    }
}

void Delay_s(int nu)
{
  for(int i=0; i<nu; i++)
  {
    Delay_ms(63);
  }
}

void main(void)
{
    //Stop watchdog timer
    
    WDT_A_hold(WDT_A_BASE);

    //Set P1.0 to output direction
    GPIO_setAsOutputPin( GPIO_PORT_P1, GPIO_PIN0 );
    GPIO_setOutputLowOnPin( GPIO_PORT_P1, GPIO_PIN0 );//灭灯
	
//    //Set P1.4 to input direction
//    GPIO_setOutputHighOnPin(
//        GPIO_PORT_P2,
//        GPIO_PIN1
//        );
    
    //GPIO_setAsInputPinWithPullUpresistor(GPIO_PORT_P2, GPIO_PIN1);
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P2, GPIO_PIN1);
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P3, GPIO_PIN0);
    GPIO_setAsInputPinWithPullUpResistor(GPIO_PORT_P3, GPIO_PIN1);
	
    while(1)
    {
	  	if(GPIO1)	//常亮1x
		{
			GPIO_setOutputHighOnPin( GPIO_PORT_P1, GPIO_PIN0 );
			break;
		}
		else	//非常亮
		{
			if(GPIO2)//直接60s 01
			{
				GPIO_setOutputHighOnPin( GPIO_PORT_P1, GPIO_PIN0 );//亮灯
				Delay_s(125);//本来应该是60,不知为何120,实际时间57s

				GPIO_setOutputLowOnPin( GPIO_PORT_P1, GPIO_PIN0 );//灭灯
				break;
			}
			else//按键按下后60s 00
			{
			  	while(1)//按键管脚默认高电平
				{
					if(KEY1==0)//按下
					{
					  	Delay_ms(10);
						while(KEY1 == 0);//没松开
						break;
					}
				}				
				GPIO_setOutputHighOnPin( GPIO_PORT_P1, GPIO_PIN0 );//亮灯
				Delay_s(125);
				GPIO_setOutputLowOnPin( GPIO_PORT_P1, GPIO_PIN0 );//灭灯
				
//				Delay_s(1);
//				GPIO_setOutputHighOnPin( GPIO_PORT_P1, GPIO_PIN0 );//亮灯
				break;
				
			}
		}
	}
	while(1);

}

//        //Test P1.4
//        if(GPIO_INPUT_PIN_HIGH == GPIO_getInputPinValue( GPIO_PORT_P2, GPIO_PIN1 ))
//        {
            //if P1.4 set, set P1.0
//            Delay_s(10);
//            GPIO_setOutputLowOnPin( GPIO_PORT_P1, GPIO_PIN0 );
//            Delay_s(10);
//            GPIO_setOutputHighOnPin( GPIO_PORT_P1, GPIO_PIN0 );
//        }
//        else
//        {
            //else reset
            
//        }
    
  
  /*    网通学院
  WDTCTL=WDTPW+WDTHOLD;
  P1DIR=0XFF;
  P1OUT=0X00;
  Time_Init();
  while(1)
  {
  }
  */      

代码功能:通过msp430实现电动小车的自启动。

你可能感兴趣的:(MSP430)