Пример #1
0
/*******************************************************************************
* 函 数 名 :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*/
	}
}
Пример #2
0
/*******************************************************************************
* 函 数 名 :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*/
	}
}
Пример #3
0
void main(){
	EA = 1;
	Timer0Init();
	Timer1Init();
	
	while(1){
		P26 = P15;
		P25 = keysta;
	};
}
Пример #4
0
/***************************************************************
** 作   者: Songyimiao
** 官    网:http://www.miaowlabs.com
** 淘    宝:http://miaowlabs.taobao.com
** 日   期: 2015年11月29日
** 函数名称: DriversInit
** 功能描述: 底层驱动初始化            
** 输   入:   
** 输   出:   
** 备    注: 
********************喵呜实验室版权所有**************************
***************************************************************/
void DriversInit(void)
{

	GPIOInit();
  	Timer1Init();
	PWMInit();
	Uart1Init();
	Uart2Init();
	Timer3Timer4Init();

}
Пример #5
0
int main()
{
    INTEnableSystemMultiVectoredInt();
    initI2C();
    initLCD();
    
    CAN1Init();
    Timer1Init();
    
    while (1)
    {
        CAN1RxMsgProcess();
    }
    return 0;
}
Пример #6
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();
}
Пример #7
0
/***********************************************************************************
 * @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();
}
Пример #8
0
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();
  }
 }
Пример #9
0
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);
	}
}
Пример #10
0
/********************************************************************
函数功能:主函数。
入口参数:无。
返    回:无。
备    注:无。
********************************************************************/
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显示
  }
 }
}