Пример #1
0
/*************************************************************************
 * Function Name: main
 * Parameters: none
 * Return: Int32U
 *
 * Description: The main subroutine
 *
 *************************************************************************/
int main(void)
{
	
	*NVIC_CCR = *NVIC_CCR | 0x200; /* Set STKALIGN in NVIC */
	// Init clock system
	  Clk_Init();

	  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC | RCC_APB2Periph_GPIOA, ENABLE);
					

	        // Configure PC.12 as output push-pull (LED)
	        GPIO_WriteBit(GPIOC,GPIO_Pin_12,Bit_SET);
	        GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_12;
	        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	        GPIO_Init(GPIOC, &GPIO_InitStructure);


	  while(1)
		{
		  
	            GPIOC->BRR |= 0x00001000;
	            myDelay(500000);
	            GPIOC->BSRR |= 0x00001000;
	            myDelay(500000);
	      }
}
Пример #2
0
/*********************************************************************************************************
** Function name:       main
** Descriptions:        用户程序入口函数
** input parameters:    无
** output parameters:   无
** Returned value:      无
*********************************************************************************************************/
int main(void)
{
    targetInit();                                                       /* 初始化目标板,切勿删除       */
    pinInit();                                                          /* 引脚初始化                   */                                                                     
    BEEP_INIT();
    BEEP_OFF();
    while (1) {
        BEEP_OFF();
        myDelay(200);
        BEEP_ON();
        myDelay(200);
    }
}
Пример #3
0
static int GetClass1Cap()
{
    char str[0x40],*p;
    int  i,len,n;

    SendCmdStr("AT+FTM=?\r");    /*- bps when send data in C_segment -*/
    GetRecvStr(str,0x38);
    str[0x3c]=0;
    if( WaitRetString(600)!=ID_CMDOK )
        return 0;
    Class1CapBits=0;
    len=strlen(str);   /*- str may be : 3,24,48,72,96 -*/

    p=str;
    while(p-str<len)
    {
        sscanf(p,"%d",&n);
        if(n)
        {
            for(i=0; i<0xf; i++)
                if(Class1ReceiverCapArr[i*4]==n)
                    Class1CapBits |= (1<<i);
        }

        do {
            if(*p++==',') break;
        } while (p-str<len);
    } /*-- for --*/

    myDelay(0xf);
    return 1;
}
Пример #4
0
void servoInit()
{
   // set servos to initial positions
   setServo(PAN, PAN_CENTER);
   setServo(BOOM, BOOM_UP);
   setServo(TILT, TILT_FORWARD);
   setServo(DOOR, DOOR_CLOSED);
   myDelay(30);
   setServo(LIFT, LIFT_UP);
   myDelay(50);
   disableServo(PAN);
   disableServo(BOOM);
   disableServo(TILT);
   disableServo(DOOR);
   disableServo(LIFT);
}
Пример #5
0
void trackLineInit() 
{
   // Assume we start on the center of the line
   lineSlope = 0;
   lineOffset = 0;

   topLost = TRUE;
   bottomLost = TRUE;
   statsBufProcessed = TRUE;
   // Set pan, tilt, boom postions
   setServo(BOOM, BOOM_UP);
   setServo(PAN, PAN_CENTER);
   setServo(TILT, TILT_FORWARD);
   myDelay(5);
   // Initialize wheel speeds to some base speed
   setLeftPWM(LEFT_BASE_SPEED);
   setRightPWM(RIGHT_BASE_SPEED);

   // Set Low Resolution
   rprintf("hr 0\r");
   // Downsample the image
   rprintf("DS %d %d\r", DS_X_LINE, DS_Y_LINE);
   // Line mode type 0, mode 2
   // "per row statistics in the tracked region" p.41
   rprintf("lm 0 2\r");
   // Output mask hides everything but, mean p.45
   rprintf("om 5 15\r");
   // set black line tracking parameters p.51
   rprintf("st 16 70 16 70 16 60\r");
   // set virtual window
   rprintf("vw %d %d %d %d\r", VW_X1_LINE, VW_Y1_LINE, VW_X2_LINE, VW_Y2_LINE);
   
   // start the tracking (Track Color)
   rprintf("tc\r");
}
Пример #6
0
void grabBonusBall()
{
   // Get in position
   //setPose(BB_READY);
   setServo(TILT, TILT_BACK);
   setServo(LIFT, LIFT_BB_READY);
   myDelay(40);
   
   // Drive up to the corner
   timer1PWMASet(255);
   timer1PWMBSet(255);
   forward();
   myDelay(20);
   brake();

   // Execute the pickup sequence
   setServo(BOOM, BOOM_BB_GRAB);
   myDelay(10);
   setServo(TILT, TILT_BB_GRAB);
   myDelay(10);
   setServo(BOOM, BOOM_UP);
   myDelay(15);
   setServo(LIFT, LIFT_UP);
   myDelay(0);
   
   // Back away from the corner
   timer1PWMASet(200);
   timer1PWMBSet(200);
   reverse();
   myDelay(15);
   brake();
}
Пример #7
0
void Example_ADC_ReadData(void)
{
    /* 1. set ADC clock */
    ADC_SetClk(TSB_ADB, ADC_HOLD_FIX, ADC_FC_DIVIDE_LEVEL_2);

    /* 2. select trigger and AD channel, this time we use sofeware trigger, */
    /*    the VR1 is connected to  ADC unit B channel 2, remember to input with macro TRG_ENABLE() */
    ADC_SetSWTrg(TSB_ADB, ADC_REG0, TRG_ENABLE(ADC_AIN2));

    /* 3. enable ADC module */
    ADC_Enable(TSB_ADB);

    /* 4. now start ADC */
    ADC_Start(TSB_ADB, ADC_TRG_SW);

    /* initialize LEDs on M374-SK board before display something */
    LED_Init();

    while (1U) {
        /* check ADC module state */
        adcState = ADC_GetConvertState(TSB_ADB, ADC_TRG_SW);

        if (adcState == DONE) {
            /* read ADC result when it is finished */
            result = ADC_GetConvertResult(TSB_ADB, ADC_REG0);

            /* get the real ADC result without other information */
            /* "/16" is to limit the range of AD value */
            myResult = result.Bit.ADResult / 16U;

            /* software trigger, need to trigger it again */
            ADC_Start(TSB_ADB, ADC_TRG_SW);
        }
        myDelay(myResult);  
        if(idx) 
        {
          LED_Off(LEDs[idx-1]);
        }
        idx &= 0x03U;
        myDelay(myResult); 
        LED_On(LEDs[idx]);
        idx++;
    }
}
Пример #8
0
void setPose(uint8_t pose)
{
   switch (pose)
   {
   case DRIVE_OPEN:
      // set servos to initial positions
      setServo(PAN, PAN_CENTER);
      setServo(BOOM, MAX_BOOM_UP);
      setServo(TILT, TILT_VERT);
      setServo(DOOR, DOOR_CLOSED);
      myDelay(30);
      setServo(LIFT, LIFT_OPEN);
      myDelay(20);
      disableServo(PAN);
      disableServo(BOOM);
      disableServo(TILT);
      disableServo(DOOR);
      disableServo(LIFT);
      lcdWriteStr("Drive Open", 0, 0);
      break;
   case DRIVE_UP:
      // set servos to initial positions
      setServo(PAN, PAN_CENTER);
      setServo(BOOM, BOOM_UP);
      setServo(TILT, TILT_VERT);
      setServo(DOOR, DOOR_CLOSED);
      myDelay(30);
      setServo(LIFT, LIFT_UP);
      myDelay(50);
      disableServo(PAN);
      disableServo(BOOM);
      disableServo(TILT);
      disableServo(DOOR);
      disableServo(LIFT);
      lcdWriteStr("Drive UP", 0, 0);
      break;
   default:
      lcdWriteStr("ERROR", 0, 0);
      break;
   }
}
Пример #9
0
int main(void)
{
    init_led();

    init_button();
    enable_button_interrupts();

    while(1) {
          /* Generate a software interrupt on EXTI line 0 */
          EXTI_GenerateSWInterrupt(EXTI_Line0);

          myDelay(500000);
    }
}
Пример #10
0
/*-- return:
  0=time out, otherwise return 1
--------------*/
static int SendComFrame(char *buf,int flag, int DelayN)
{
    int ret,i,total;

    if(SendFTHflag)
    {
        SendCmdStr("AT+FTH=3\r");
        ret=WaitRetString(DelayN);
        if(ret!=ID_CMDOK && ret!=ID_CMDCONNECT)
            return 0;
        myDelay(2);
    }

    SendFTHflag=flag;
    if(flag) buf[3] |= 0x10;
    else buf[3] &= 0xef;

    total=*(short *)&buf[0];
    i=2;
    total += 2;
    TimerTicks=0;
    for(; i<total; i++)
    {
        while( SendCmdChar(buf[i]) )
            if(TimerTicks>=DelayN)
                break;
        if(buf[i]==DLE)
            while( SendCmdChar(DLE) )
                if(TimerTicks>=DelayN)
                    break;
    }

    while( SendCmdChar(DLE) )
        if(TimerTicks>=DelayN)
            break;
    while( SendCmdChar(ETX) )
        if(TimerTicks>=DelayN)
            break;

    if(TimerTicks>=DelayN)
        return 0;

    ret=WaitRetString(600);
    if( ret!=ID_CMDOK && ret!=ID_CMDCONNECT )
        return 0;

    return 1;
}
Пример #11
0
void cmuInit()
{
   //myDelay(10); // wait for the CMU to power up
   
   //lcdWriteStr("CMU Init", 0, 0);
   // Set high res mode
   rprintf("hr 1\r");

   //lcdWriteStr("White bal ON", 1, 0);
   // turn white balance on p.31
   rprintf("cr 18 44\r");
   myDelay(200);
   //lcdWriteStr("White bal OFF", 1, 0);
   // turn white balance off p.31
   rprintf("cr 18 40\r");
}
Пример #12
0
int main(void) {
    WDTCTL = WDTPW | WDTHOLD;	// 关闭看门狗

    __enable_interrupt();       //使能全局中断

    init_key();                 //初始化按键的管脚设置

    init_LCD_hardware();        //初始化LCD液晶显示屏的管脚设置

    SetVCore(3);                //设VCore为最大,提高Vcore电压到最高级,以满足倍频需求该函数位于HAL_PMM.H中

    initClocks(20000000);       //初始化时钟20MHz

    init_SPI();                 //初始化SPI

    ILI9325_CMO24_Initial();
    SPILCD_SetWindow(0,480-1,0,320-1);
    SPILCD_Clear(WHITE);

	P6DIR |= BIT3+BIT4;
    Show_splash();

    int ai;
	for(ai=0;ai<200;ai++)
	{
		myDelay();
	}

    SPILCD_Clear(WHITE);
    Show_MenuTheme();
    Show_MenuMode(1);
    Show_Select();



    Init_UART2();
    UCA0IE |= UCRXIE;

    int as1=1;

    buttonsPressed=0;

    USB_setup(TRUE,TRUE);

    while (!buttonsPressed)
    {
    	buttonsPressed = 0;

    	for(ai=0;ai<30;ai++)
    	{
    		myDelay();
    	}

    	if (buttonsPressed & BUTTON_S3)
        {
        	Show_ButtonS3();
        	if(as1==4){
        		as1=1;
        		Show_MenuMode(as1);
        	}else{
        		if(as1==1){
        			as1=2;
        		    Show_MenuMode(as1);
        		}else{
        			if(as1==2){
        				as1=3;
        		        Show_MenuMode(as1);
        			}else{
        				if(as1==3){
        					as1=4;
        		            Show_MenuMode(as1);
        				}
        			}
        		}
        	}
        	buttonsPressed=0;
        	Show_Select();
        }

        if (buttonsPressed & BUTTON_S2)
        {
        	Show_ButtonS2();
        	if(as1==2){
        		as1=1;
        		Show_MenuMode(as1);
        	}else{
        		if(as1==3){
        			as1=2;
        		    Show_MenuMode(as1);
        		}else{
        			if(as1==4){
        				as1=3;
        		        Show_MenuMode(as1);
        			}else{
        				if(as1==1){
        					as1=4;
        					Show_MenuMode(as1);
        				}
        			}
        		}
        	}
        	buttonsPressed=0;
        	Show_Select();
        }

        if (buttonsPressed & BUTTON_S1)
        {
        	Init_UART2();
        	Show_ButtonS1();
        	if(as1==1){
        	    menu_select=1;
        	}
        	if(as1==2){
        	    menu_select=2;
        	}
        	if(as1==3){
        	    menu_select=3;
        	}
        	if(as1==4){
        	    menu_select=4;
        	}

        	chanle_menu();

        	as1=1;
        	buttonsPressed=0;
        	SPILCD_Clear(WHITE);

            Show_MenuTheme();
            Show_MenuMode(1);
            Show_Select();
        }

        if (buttonsPressed & BUTTON_S4){
        	Show_ButtonS4();
        	Show_MenuMode(as1);
        	buttonsPressed=0;
        	Show_Select();
        }
    }
}
Пример #13
0
void transmit_menu(void){
    SPILCD_Clear(WHITE);
    Show_MenuTheme();
    Show_TranMenuMode(1);
    Show_Select();

    int as1=1;

    int tran_mode;

    buttonsPressed=0;

    while (!(buttonsPressed & BUTTON_S4))
    {
        buttonsPressed = 0;
        int ai;
        for(ai=0;ai<30;ai++)
        {
            myDelay();
        }
        if (buttonsPressed & BUTTON_S3)
        {
            Show_ButtonS3();
            if(as1==4){
                as1=1;
                Show_TranMenuMode(as1);
            }else{
                if(as1==1){
                    as1=2;
                    Show_TranMenuMode(as1);
                }else{
                    if(as1==2){
                        as1=3;
                        Show_TranMenuMode(as1);
                    }else{
                        if(as1==3){
                            as1=4;
                            Show_TranMenuMode(as1);
                        }
                    }
                }
            }
            buttonsPressed=0;
            Show_Select();
        }

        if (buttonsPressed & BUTTON_S2)
        {
            Show_ButtonS2();
            if(as1==2){
                as1=1;
                Show_TranMenuMode(as1);
            }else{
                if(as1==1){
                    as1=4;
                    Show_TranMenuMode(as1);
                }else{
                    if(as1==4){
                        as1=3;
                        Show_TranMenuMode(as1);
                    }else{
                        if(as1==3){
                            as1=2;
                            Show_TranMenuMode(as1);
                        }
                    }
                }
            }
            buttonsPressed=0;
            Show_Select();
        }

        if (buttonsPressed & BUTTON_S1)
        {
            Show_ButtonS1();
            if(as1==1){

                tran_mode=1;
                tran_mode_SP=1;
            }
            if(as1==2){

                tran_mode=2;
                tran_mode_SP=2;
            }
            if(as1==3){
                tran_mode=3;
                tran_mode_SP=3;
            }
            if(as1==4){
                tran_mode=4;
                tran_mode_SP=4;
            }

            if(menu_select==1){
            	UCA0IE &= ~UCRXIE;
                HR(tran_mode);
                menu_select=1;
            }
            if(menu_select==2){
                BP(tran_mode);
                menu_select=2;
            }
            if(menu_select==3){
                 SPO2H(tran_mode);
                 menu_select=3;
            }
            if(menu_select==4){
                ACCELMENU(tran_mode);
                menu_select=4;
            }

            as1=1;
            tran_mode=1;
            buttonsPressed=0;
            BUTTON_S4=0;
            SPILCD_Clear(WHITE);

            Show_MenuTheme();
            Show_TranMenuMode(1);
            Show_Select();
        }
    }
    if(buttonsPressed & BUTTON_S4){
        Show_ButtonS4();
    }
}
Пример #14
0
void chanle_menu(void){
    SPILCD_Clear(WHITE);
    Show_MenuTheme();
    Show_ChanleMode(1);
    Show_Select();

    int as1=1;

    buttonsPressed=0;

    while (!(buttonsPressed & BUTTON_S4))
    {
        buttonsPressed = 0;
        int ai;
        for(ai=0;ai<30;ai++)
        {
            myDelay();
        }
        if (buttonsPressed & BUTTON_S3)
        {
            Show_ButtonS3();
            if(as1==4){
                as1=1;
                Show_ChanleMode(as1);
            }else{
                if(as1==1){
                    as1=2;
                    Show_ChanleMode(as1);
                }else{
                    if(as1==2){
                        as1=3;
                        Show_ChanleMode(as1);
                    }else{
                        if(as1==3){
                            as1=4;
                            Show_ChanleMode(as1);
                        }
                    }
                }
            }
            buttonsPressed=0;
            Show_Select();
        }

        if (buttonsPressed & BUTTON_S2)
        {
            Show_ButtonS2();
            if(as1==2){
                as1=1;
                Show_ChanleMode(as1);
            }else{
                if(as1==1){
                    as1=4;
                    Show_ChanleMode(as1);
                }else{
                    if(as1==4){
                        as1=3;
                        Show_ChanleMode(as1);
                    }else{
                        if(as1==3){
                            as1=2;
                            Show_ChanleMode(as1);
                        }
                    }
                }
            }
            buttonsPressed=0;
            Show_Select();
        }

        if (buttonsPressed & BUTTON_S1)
        {
            Show_ButtonS1();
            if(as1==1){
            	select_chanle(1);
            }
            if(as1==2){
            	select_chanle(2);
            }
            if(as1==3){
            	select_chanle(3);
            }
            if(as1==4){
            	select_chanle(4);
            }
            if(menu_select==3) {
            	NONUSE_LCD();
            	int_dac();
            	on_red();
            	USE_LCD();
            }
            transmit_menu();

            as1=1;
            buttonsPressed=0;
            BUTTON_S4=0;
            SPILCD_Clear(WHITE);

            Show_MenuTheme();
            Show_ChanleMode(1);
            Show_Select();
        }
    }
    if(buttonsPressed & BUTTON_S4){
    	Show_ButtonS4();

    }
}