/*! * Init board. */ void BoardInit(void) { /* Initialise ports. */ PortInit(); /* Initialise system clock. */ SystemClkInit(); /* Initialise SPI1. */ Spi1Init(); /* Initialise Timer0. */ Timer0Init(); /* Initialise Timer3. */ Timer3Init(); /* Initialise interrupts. */ InterruptInit(); /* Initialise the LCD. */ LcdInit(); /* Clear LCD. */ LcdClearDisplay(); /* Initialise LEDs. */ LEDInit(); #ifdef RTC_ENABLED /* RTC init. */ RTC_Init(); #endif //RTC_ENABLED #ifdef UART0_ENABLED /* UART0 init. */ Uart0Init(); #endif //UART0_ENABLED }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { UsartConfiguration(); printf("system begin\r\n"); Timer0Init(); Exit0Init(); SystemInit(); while(1) { KeyScan(); Display(ratio_value); // if(motor_count >= 5000)//每隔5s反转一次 // { // motor_count = 0; // motor_dir = !motor_dir; // printf("system switch dir\r\n"); // } if(time1s_tick>= 2000) { time1s_tick = 0; printf("%d %d\r\n",coder_count,motor_count); } } }
void MainTask(void *pdata) //Main Task create taks0 and task1 { #if OS_CRITICAL_METHOD == 3 /* Allocate storage for CPU status register */ OS_CPU_SR cpu_sr; #endif OS_ENTER_CRITICAL(); Timer0Init(); //initial timer0 for ucos time tick ISRInit(); //initial interrupt prio or enable or disable OS_EXIT_CRITICAL(); OSPrintfInit(); //use task to print massage to Uart OSStatInit(); OSTaskCreate (Task0,(void *)0, &Task0Stk[Task0StkLengh - 1], Task0Prio); OSTaskCreate (Task1,(void *)0, &Task1Stk[Task1StkLengh - 1], Task1Prio); OSTaskCreate (Task2,(void *)0, &Task2Stk[Task2StkLengh - 1], Task2Prio); OSTaskCreate (Task3,(void *)0, &Task3Stk[Task2StkLengh - 1], Task3Prio); while(1) { OSPrintf("\nEnter Main Task\n"); OSTimeDly(OS_TICKS_PER_SEC); } }
void main(void){ // UCHAR Test[3]={0x88,0x01,0x02}; IO_Init(); init_Uart(); Timer0Init(); INT_Init(); System_SetParaInit(); EA=1; // USART_Send(Test,sizeof(Test),1); Delay_ms(100); BuzzerTriggrt = 1; while(1){ // Delay_ms(1000); // SBUF = 0xaf;while(!(SCON&0x02));SCON &= ~0x02; //if(Com1DataCounter != 0){ // Muti_Send_Byte(Com1DataBuffer,Com1DataCounter); //将上位机的数据直接下发到下面的单片机 // Com1DataCounter=0; // memset(Com1DataBuffer,0x00,600); //} P34 = 1; ENTM = 1; if(HeartbeatTrigger == 1) { UART_Fe_Seq++; USART1_Send(CommonDataBuffer,Fe_data_Organize(CMD_Heartbeat,&ReplySucc,1,0)); HeartbeatTrigger = 0; } if(ResetWifiTrigger == 1) { /*由徐志坚禁止了没有收到服务器的命令而重启WiFi的功能*/ //nResetWifi = 0; //Delay_ms(500); //nResetWifi = 1; //ResetWifiOnOff = 0;//关闭WIFI重置开关,WIFI重启以后,必须关闭重置开关防止WIFI模块连接服务器过程中再次重启。 ResetWifiTrigger = 0; } if(Com1HaveDate) { USART4_Send(Com1DataBuffer,Com1DataCounter); Com1DataCounter=0; memset(Com1DataBuffer,0x00,600); Com1HaveDate = 0; } if(Exint0Counter != 0) { Exint0_DATA_deal(); } } }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { Timer0Init(); speed = 30; while(1) { KeyScan(); } }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { Timer0Init(); InitMotor(); while(1) { SetMotor(); } }
void main(){ EA = 1; Timer0Init(); Timer1Init(); while(1){ P26 = P15; P25 = keysta; }; }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { CarStop(); LED_OFF; UsartConfiguration(); LCD1602Init(); Timer0Init(); //5ms 执行一次 while(1) { if(tick_5ms >= 5) { tick_5ms = 0; tick_200ms++; if(tick_200ms >= 40) { tick_200ms = 0; if(switch_flag) { LED_ON; switch_flag = 0; }else { LED_OFF; switch_flag = 1; } } continue_time--;//200ms 无接收指令就停车 if(continue_time == 0) { continue_time = 1; CarStop(); } //do something if(bt_rec_flag == 1)//接收到红外信号 { bt_rec_flag = 0; switch(ctrl_comm) { case COMM_UP: CarGo();break; case COMM_DOWN: CarBack();break; case COMM_LEFT: CarLeft();break; case COMM_RIGHT: CarRight();break; case COMM_STOP: CarStop();break; default : break; } LCD1602WriteCommand(ctrl_comm); //printf("%c",ctrl_comm); } } } }
void TIMERdelay (int uSec) { if(!timer0Inicializado) { Timer0Init(); timer0Inicializado = 1; } flagTimer = 0; Timer0Count(uSec); while(!flagTimer) ;// Espero la interrupcion del timer que suba el flag return; }
void main(){ u8 str[] = "MaWei"; EA = 1; UartInit(); Timer0Init(); sendStr(str); while(1){ P30 = P31; } }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { Timer0Init(); angle_count=7; Delayms(500);//先回原位 while(1) { for(angle_count=7;angle_count<23;angle_count++) Delayms(30); for(angle_count=23;angle_count>7;angle_count--) Delayms(30); } }
/********************************************************************************************************* ** 函数名称: TargetInit ** 功能描述: 目标板初始化代码,在需要的地方调用,根据需要改变 ** 输 入: 无 ** ** 输 出: 无 ** ** 全局变量: 无 ** 调用模块: 无 ** ** 作 者: 陈明计 ** 日 期: 2004年2月2日 **------------------------------------------------------------------------------------------------------- ** 修改人: ** 日 期: **------------------------------------------------------------------------------------------------------ ********************************************************************************************************/ void TargetInit(void) /*由汇编转入到此处*/ { OS_ENTER_CRITICAL(); srand((INT32U) TargetInit); VICInit(); Timer0Init(); VICIntSelect=0x00; //中断全部设置为IRQ VICVectCntl8=0x20|4; //第8优先级的中断分配给了Timer0,向量IRQ使能 VICVectAddr8=(unsigned int) IRQ_Timer0; //将第8优先级的地址赋值为TIMER0中断入口地址 VICIntEnable=1<<4; OS_EXIT_CRITICAL(); }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { int key_value; CarStop(); LED_OFF; LCD1602Init(); Timer0Init(); //5ms 执行一次 while(1) { key_value = KeyScan(); if(key_value == KEY1) { sys_status = 0; } if(key_value == KEY2) { sys_status = 1; } //执行部分 if(sys_status == 1) { VoidRun(); }else { ctrl_comm = COMM_STOP; CarStop(); } if(tick_5ms >= 5) { tick_5ms = 0; tick_200ms++; if(tick_200ms >= 40) { tick_200ms = 0; if(switch_flag) { LED_ON; switch_flag = 0; }else { LED_OFF; switch_flag = 1; } } } } }
MAIN void main(void) { Init(); // Enable odometry LED_CONFIGURE_ODOMETRY(); // Configure auto measurment mode SensorInit(); SensorConfigAutomode(am_odo); // Setup encoder control EncoderInit(); EncoderMovementReset(); // Initialize 1kHz tick timer Timer0Init(); Timer0IntEnable(); // Set drive direction MotorDir(FWD, FWD); for (;;) { // Circle with approx. 10cm diameter ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { EncoderMovementSetSpeed(INNER_SPEED, OUTER_SPEED(100)); } msleep(5000); // Circle with approx. 25cm diameter ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { EncoderMovementSetSpeed(INNER_SPEED, OUTER_SPEED(250)); } msleep(3000); // Tightening spiral for (uint8_t i = 250; i >= 80; i -= 10) { ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { EncoderMovementSetSpeed(INNER_SPEED, OUTER_SPEED(i)); } msleep(500); } // Straight line ATOMIC_BLOCK(ATOMIC_RESTORESTATE) { EncoderMovementSetSpeed(125, 125); } msleep(3000); } }
void main() { flag= 0; sys_init(); Timer0Init(); Timer0Init_50ms(); IO_init(); PWM_Init(); clear(); while(1) { key(); conver_nu(); LCD_display(); } }
/*********************************************************************************** * @prototype void SystemInit(void) * @description Initializes the device * @param None * @return None ***********************************************************************************/ void SystemInit(void) { // Initialize GPIO and peripheral GPIOInit(); // Initialize Timers Timer0Init(); Timer1Init(); // Initialize UART USARTInit(_BAUDRATE); // Initialize ADC ADC_Init(); // Enable interrupts sei(); }
void main(void) { u8 i; delay_ms(200); //上电延时200ms等待系统稳定 UartInit(); //串口1初始化 Timer0Init();//定时器0初始化 INT0Init();//中断0初始化 IR_IO=1; while(1) { if(codeCnt==31) //数据接收完成 { if(IR_data[2]==~IR_data[3])//校验一下反码 { for(i=0;i<4;i++) SendData(IR_data[i]);//输出4位hex delay_ms(30);//延时30ms等待数据超时,遥控器一次发3组相同的数据,这里用延时只接收1组就好了。 } } } }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { CarStop(); LCD1602Init(); Timer0Init(); UltraSoundInit(); //5ms 执行一次 while(1) { if(tick_5ms >= 5) { tick_5ms = 0; tick_200ms++; if(tick_200ms >= 40) { tick_200ms = 0; LCD1602WriteDistance(distance_cm); } //do something Distance(); BarrierProc(); // if(ctrl_comm_last != ctrl_comm)//指令发生变化 // { // ctrl_comm_last = ctrl_comm; // switch(ctrl_comm) // { // case COMM_UP: CarGo();break; // case COMM_DOWN: CarBack();break; // case COMM_LEFT: CarLeft();break; // case COMM_RIGHT: CarRight();break; // case COMM_STOP: CarStop();break; // default : break; // } // LCD1602WriteCommand(ctrl_comm); // } } } }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { int key_value; CarStop(); LED_OFF; Timer0Init(); UltraSoundInit(); //5ms 执行一次 while(1) { key_value = KeyScan(); if(key_value == KEY1) { sys_status = 0; } if(key_value == KEY2) { sys_status = 1; } //执行部分 if(tick_5ms >= 5) { tick_5ms = 0; if(sys_status == 1) { Distance(); VoidRun(); }else { CarStop(); } } } }
void main() { u16 i; u8 dir=0,height=0,cmd=0; u8 color=0,light=0; u8 temp; u8 d,h; Timer0Init(); Timer1Init(); usart_init(9600); //SendString("mcu is working!\n"); while(1) { /*获取地址*/ block=P2&0x0f; pole=(P3&0xf0)>>4; /*串口接收处理*/ if(USART_RX_STA==STA_OK) { for(i=0;i<USART_REC_LEN;i++)//返回数据 { SendData(USART_RX_BUF[i]); } if(USART_RX_BUF[0]==0)//群发数据 { cmd = USART_RX_BUF[1]; switch(cmd) { case 1:Display_ALL();break;//同步 case 2:OFF_ALL();break;//复位 case 3:break;//呼吸灯 case 4:color = USART_RX_BUF[2]; light = USART_RX_BUF[3]; LED_ALL_ON(color,light);break;//跑马灯 case 5:check_led();break;//检测 case 6:WriteData(IAP_ADDRESS,480,EEPROM_TEMP);break;//将缓存区数据存入EEPORM case 7:ReadRGB_EEPORM_ByID(IAP_ADDRESS,1);break; case 8:for(i=0;i<ONE_SECTOR;i++) { temp = IAP_ReafByte(IAP_ADDRESS+i); SendData(temp); }break;//读取EEPROM数据 case 9:ET0=0; SendData(block);//返回目标地址 SendData(pole);break; case 10:ET0=1;break; } SendData(cmd);//返回命令字 } else if(USART_RX_BUF[0]>0)//单个目标数据 { if(USART_RX_BUF[0]==block&&USART_RX_BUF[1]==pole)//是否为目标地址 { RGB_DATA.dir = USART_RX_BUF[2];//获取方向值 RGB_DATA.height = USART_RX_BUF[3];//获取高度值 RGB_DATA.rgb[0] = USART_RX_BUF[4];//获取数据值 RGB_DATA.rgb[1] = USART_RX_BUF[5]; RGB_DATA.rgb[2] = USART_RX_BUF[6]; RGB_DATA.id = USART_RX_BUF[7];//获得帧ID // rgb =&USART_RX_BUF[4];//获取数据值 // // SetRGB(dir,height,rgb);//设置数据值 WriteRGB_EEPROMTemp(EEPROM_TEMP,RGB_DATA); // SendData(block);//返回目标地址 // SendData(pole); } } USART_RX_STA=STA0; USART_REC_LEN=0; } for(d=1;d<=4;d++) for(h=1;h<=4;h++) BreathingLight(d,h,1,60); } }