/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { unsigned int temp=0; //关闭数码管 dula = 1; P0 = 0xff; dula = 0; SystemInit(); init_MODBUS(); Timer1Init(); Delayms(200); while(1) { //将需要交互的数据读取到公共区 /*start*/ /*end*/ //同步公共区数据到实际运行效果 /*start*/ // temp++; // if(temp == 180) // { // temp = 0; // Delayms(2000); // } // Delayms(30); /*end*/ } }
/******************************************************************************* * 函 数 名 :main * 函数功能 :主函数 * 输 入 :无 * 输 出 :无 *******************************************************************************/ void main() { unsigned int temp=0; SystemInit(); init_MODBUS(); Timer1Init(); modbus_Addt.actuator_angle = 0; plus_h = 65075 - 256*actuator_angle/25; plus_l = 47565 + 256*actuator_angle/25; Delayms(1000);//延时1s,舵机归位 while(1) { //将需要交互的数据读取到公共区 /*start*/ /*end*/ //同步公共区数据到实际运行效果 /*start*/ // temp++; // if(temp == 180) // { // temp = 0; // Delayms(2000); // } // Delayms(30); /*end*/ } }
void main(){ EA = 1; Timer0Init(); Timer1Init(); while(1){ P26 = P15; P25 = keysta; }; }
/*************************************************************** ** 作 者: Songyimiao ** 官 网:http://www.miaowlabs.com ** 淘 宝:http://miaowlabs.taobao.com ** 日 期: 2015年11月29日 ** 函数名称: DriversInit ** 功能描述: 底层驱动初始化 ** 输 入: ** 输 出: ** 备 注: ********************喵呜实验室版权所有************************** ***************************************************************/ void DriversInit(void) { GPIOInit(); Timer1Init(); PWMInit(); Uart1Init(); Uart2Init(); Timer3Timer4Init(); }
int main() { INTEnableSystemMultiVectoredInt(); initI2C(); initLCD(); CAN1Init(); Timer1Init(); while (1) { CAN1RxMsgProcess(); } return 0; }
void setup() { int i; setupSystemClock(); setupUART(); setup_system_tick(SYSTEM_TICK_FREQ); ID_Init(); // MO: Is it also system init? GetID(); /* Init AHRS I2C */ /* ----Initialize I2C slave mode--- */ if(devNum == 0) I2C_MS_Master_Init(); else I2C_MS_Slave_Init(); //I2CWakeUpInit(); TIDMstFirstInitFIN = 0; TIDMstInitFIN = 0; TIDMstStage = 0; TIDMstInitDevState = 1; FlashInit(); // Setup function pointers for default sensor boards. for(i=0; i<MAX_TID_DEV; i++) { if (pTidList[i]) SetDeviceFunction(pTidList[i], &(pfnDevFunc[i])); } // Call board init function if (pTidList[devNum]->func.pfnSetup) pTidList[devNum]->func.pfnSetup(); // Load TID feature from flash GetFlashTID(&(pTidList[devNum]->Feature), devNum); // Set Timer1 to (1000/value) in (Hz) Timer1Init(1000 / (pTidList[devNum]->Feature.data1.value)); /* TID initialize */ SlvDataInit(); MstDataInit(); }
/*********************************************************************************** * @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() { //初始化 Timer0Init_50ms(); Timer1Init() ; //10毫秒@11.0592MHz PWM_Init(); //开启中断区域 ET1=1; ET0=1; EA=1; while(1) { LimitRange(Time_F,100,10); //限定幅度 TL0=TL[Time_F-10]; TH0=TH[Time_F-10]; Digitron_display(); } }
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); } }
/******************************************************************** 函数功能:主函数。 入口参数:无。 返 回:无。 备 注:无。 ********************************************************************/ void main(void) { #ifdef DEBUG0 int i; #endif int InterruptSource; SystemClockInit(); //系统时钟初始化 LedInit(); //LED对应的管脚初始化 LcdInit(); //LCD初始化 AdcInit(); //ADC初始化 Timer1Init(); //定时器1初始化,用来产生10ms的定时扫描信号 KeyInit(); //键盘初始化 Uart0Init(); //串口0初始化 #ifdef DEBUG0 for(i=0;i<16;i++) //显示头信息 { Prints(HeadTable[i]); } #endif UsbChipInit(); //初始化USB部分 while(1) { InterruptSource=(*AT91C_UDP_ISR)&(0x0F|(1<<8)|(1<<12)); //取出需要的中断 if(InterruptSource) //如果监视的中断发生 { if(InterruptSource&(1<<8)) { *AT91C_UDP_ICR=1<<8; //清除中断 UsbBusSuspend(); //总线挂起中断处理 } if(InterruptSource&(1<<12)) { *AT91C_UDP_ICR=1<<12; //清除中断 UsbBusReset(); //总线复位中断处理 } if(InterruptSource&(1<<0)) { if(AT91C_UDP_CSR[0]&((1<<1)|(1<<2)|(1<<6))) //如果是SETUP包、缓冲未空等 { UsbEp0Out(); //端点0输出中断处理 } if(AT91C_UDP_CSR[0]&(1<<0)) //如果是端点0输入完成 { UsbEp0In(); //端点0输入中断处理 } } if(InterruptSource&(1<<1)) { UsbEp1In(); //端点1输入中断处理 } if(InterruptSource&(1<<2)) { UsbEp2Out(); //端点2输出中断处理 } if(InterruptSource&(1<<3)) { UsbEp3In(); //端点3输入中断处理 } } if(KeyUp||KeyDown) //如果用户操作了按键 { DispKey(); //在LCD上显示按键情况 if(ConfigValue!=0) //如果已经设置为非0的配置,则可以返回报告数据 { if(!Ep1InIsBusy) //如果端点1输入没有处于忙状态,则可以发送数据 { KeyCanChange=0; //禁止按键扫描 if(KeyUp||KeyDown) //如果有按键事件发生 { SendReport(); //则返回报告 } KeyCanChange=1; //允许按键扫描 } } //清除KeyUp和KeyDown KeyUp=0; KeyDown=0; LcdRefresh(); //刷新LCD显示 } } }