/************************************************************************* * 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); } }
/********************************************************************************************************* ** 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); } }
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; }
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); }
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"); }
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(); }
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++; } }
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; } }
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); } }
/*-- 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; }
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"); }
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(); } } }
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(); } }
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(); } }