Ejemplo n.º 1
0
void start_configration(void)
{
	uint8_t sdadc_cali_flag=0;//SDADC配置成功与否标志,0-成功,1-INITRDY未置位,2-EOCAL未置位
	
	Init_flash();//初始化一些参数
		
	delay_init();//延时函数初始化,可以使用delay_ms(u16 nms),delay_us(u32 nus)
	NVIC_Configuration();//设置NVIC中断分组2:2位抢占优先级,2位响应优先级
	HT1621_Init();
	lcd_clr();
	lcd_full_test();
	Init_Keyboard_Interrupt();//内含TIM3-按键10ms检测中断、EXTI9_5-按键外部中断
	BUZZER_LED_Init();		//TIM4驱动
	uart_init(115200);//内含USART2与上位机通信串口中断9600
	delay_ms(500);
	sdadc_cali_flag=SDADC1_Config();//采样配置,内含DMA2-SDADC数据DMA中断
	TIM19_Config();//采样触发、采样频率配置
	TIM5_2_Compare_Capture_Init();//COMP比较器、定时器配置,用于基频捕获,内含TIM5比较器捕获中断
	DTA0660_Init();//内含Usart1-DTA0660通信串口中断,用于单片机与DTA通信
	TIM12_Config_1s();//1s定时器,内含TIM12-1s中断:秒表显示闪烁
	TIM14_Config_0_5s();//0.5s定时器,内含TIM14-0.5s中断:相序测量闪烁

	PowerControl_Init();
	
	DAC_Config();//新增DAC输出驱动钳头
	Dac1_Set_Vol(1800);
	
	TIM13_Config_1s_Standby();//内含1s中断,计数1800次为30min,进入Standby模式
	
	
}
Ejemplo n.º 2
0
int main(void)
{
	system_init();
	delay_init();

	struct port_config pin;
	port_get_config_defaults(&pin);
	pin.direction = PORT_PIN_DIR_OUTPUT;

	port_pin_set_config(LED0_PIN, &pin);
	port_pin_set_output_level(LED0_PIN, LED0_INACTIVE);

	while (true) {
		for (int i = 0; i < 5; i++) {
			port_pin_toggle_output_level(LED0_PIN);
			delay_s(1);
		}

		for (int i = 0; i < 50; i++) {
			port_pin_toggle_output_level(LED0_PIN);
			delay_ms(100);
		}

		for (int i = 0; i < 5000; i++) {
			port_pin_toggle_output_level(LED0_PIN);
			delay_cycles(100);
		}
	}
}
Ejemplo n.º 3
0
 int main(void)
 { 
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为9600
	LED_Init();		  		//初始化与LED连接的硬件接口
	 LED0=1;
	 LED1=1;
	LED2=1;
	USB_Cable_Config (ENABLE); 
	delay_ms(500);
	USB_Port_Set(0); 	
	delay_ms(500);
	USB_Port_Set(1);	
 	Set_USBClock();   
 	USB_Interrupts_Config();    
 	USB_Init();	 	 
	 	 	
	 SPI_IO_Init(); 
	 DMA_configuration();
	spi_conf(SPI_DEFAULT_SPEED);
	LED1=0;
	LED2=0;
	while(1)
	{	
		/* Get command */
    serprog_handle_command(usb_getc());
    /* Flush output via USB */
    usb_sync();
		
	}
}
Ejemplo n.º 4
0
//主函数
int main(void)
{
	OS_ERR err;
	CPU_SR_ALLOC();
	
	delay_init(168);  //时钟初始化
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//中断分组配置
	uart_init(115200);   //串口初始化
	LED_Init();         //LED初始化	
	LCD_Init();			//LCD初始化	
	KEY_Init();			//按键初始化
	BEEP_Init();		//初始化蜂鸣器
	FSMC_SRAM_Init();	//初始化SRAM
	my_mem_init(SRAMIN);//初始化内部RAM
	ucos_load_main_ui();//加载主UI
	
	OSInit(&err);		    //初始化UCOSIII
	OS_CRITICAL_ENTER();	//进入临界区			 
	//创建开始任务
	OSTaskCreate((OS_TCB 	* )&StartTaskTCB,		//任务控制块
				 (CPU_CHAR	* )"start task", 		//任务名字
                 (OS_TASK_PTR )start_task, 			//任务函数
                 (void		* )0,					//传递给任务函数的参数
                 (OS_PRIO	  )START_TASK_PRIO,     //任务优先级
                 (CPU_STK   * )&START_TASK_STK[0],	//任务堆栈基地址
                 (CPU_STK_SIZE)START_STK_SIZE/10,	//任务堆栈深度限位
                 (CPU_STK_SIZE)START_STK_SIZE,		//任务堆栈大小
                 (OS_MSG_QTY  )0,					//任务内部消息队列能够接收的最大消息数目,为0时禁止接收消息
                 (OS_TICK	  )0,					//当使能时间片轮转时的时间片长度,为0时为默认长度,
                 (void   	* )0,					//用户补充的存储区
                 (OS_OPT      )OS_OPT_TASK_STK_CHK|OS_OPT_TASK_STK_CLR, //任务选项
                 (OS_ERR 	* )&err);				//存放该函数错误时的返回值
	OS_CRITICAL_EXIT();	//退出临界区	 
	OSStart(&err);      //开启UCOSIII
}
Ejemplo n.º 5
0
//ALIENTEK战舰STM32开发板实验3
//按键输入实验  
//技术支持:www.openedv.com
//广州市星翼电子科技有限公司 	 
 int main(void)
 {
 	u8 t;
	delay_init();	    	 //延时函数初始化	  
 	LED_Init();			     //LED端口初始化
	KEY_Init();              //初始化与按键连接的硬件接口
	BEEP_Init();         	 //初始化蜂鸣器端口
	LED0=0;					 //先点亮红灯
	while(1)
	{
 		t=KEY_Scan(0);		//得到键值
	   	if(t)
		{						   
			switch(t)
			{				 
				case KEY_UP:	//控制蜂鸣器
					LED4=!LED4;
					LED1=!LED1;
					LED2=!LED2;
					LED3=!LED3;
					break;
				case KEY_LEFT:	//控制LED0翻转
					LED1=!LED1;
					break;
				case KEY_DOWN:	//控制LED1翻转	 
					LED2=!LED2;
					break;
				case KEY_RIGHT:	//同时控制LED0,LED1翻转 
					LED3=!LED3;
					break;
			}
		}else delay_ms(10); 
	}	 
 }
Ejemplo n.º 6
0
void start_task(void *pdata)
{
	OS_CPU_SR cpu_sr = 0;
	pdata = pdata;

	delay_init(168);

	OS_ENTER_CRITICLE();	//进入临界区 无法被中断打断
	OSTaskCreate(	led0Task, 
			(void *)0, 
			(OS_STK *)LED0_TASK_STK[LED0_STK_SIZE-1],
			LED0_TASK_PRIO);//创建LED任务
	// OSTaskCreate(	beepTask, (void *)0, 
	// 		(OS_STK *)BEEP_TASK_STK[BEEP_STK_SIZE-1],
	// 		BEEP_TASK_PRIO);//创建BEEP任务
	//用OSTaskCreateExt改写
	OSTaskCreateExt(	beepTask, (void *)0,
				(OS_STK *)BEEP_TASK_STK[BEEP_STK_SIZE-1],
				BEEP_TASK_PRIO,
				BEEP_TASK_PRIO,//ID设置为跟优先级一样
				(OS_STK *)BEEP_TASK_STK[0],//栈底指针
				BEEP_STK_SIZE,//堆栈大小
				(void *) 0,//额外参数为空
				OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR//使用任务堆栈检查和清零功能

		)
	OSTaskSuspend(START_TASK_PRIO);//挂起起始任务
	OS_EXIT_CRITICLE();		//退出临界区 可以被中断打断

	

}
Ejemplo n.º 7
0
  int main(void)
 {
	 u8 t=0;	
	 u16 Time=0,dis_pre=0;
	 float V_ave;	//平均速度
	 char code_ave[5],code_v[5],code_vr[5], mileage[5];//信息储存数组
	 
	delay_init(72);	    	 			//延时函数初始化	  
	Stm32_Clock_Init(9);		  //系统时钟设置
	uart_init(72,9600);	 	 		  //串口初始化为9600
	usmart_dev.init(72);			//初始化USMART	
	EXTIX_Init();							//外部中断初始化
	TIM3_Int_Init(5000,7199); //10Khz的计数频率,计数到5000为500ms 
	LCD_Init();				 				//  PE.ALL,PD1~5  
	LCD_Display_Dir(1);				//设置显示方向为横屏显示
	LED_Init();		  					//初始化与LED连接的硬件接口
	KEY_Init();								//初始化按键

		while(RTC_Init())
		{	//等待RTC初始化
			delay_ms(200);
			printf("rtc waiting```\r\n");
		} 
		printf("finish\n");
		display_jing();
		//初始化完成
   while(1)
	{	
		POINT_COLOR=RED;
		if(t!=calendar.sec)		//时间更新后显示新时间
		{
				t=calendar.sec;	
				LCD_ShowNum(200,135,calendar.min,2,32);		
				LCD_ShowString(230,135,200,32,32,":");			
				LCD_ShowNum(248,135,calendar.sec,2,32);
			
				Time = 60*calendar.min+calendar.sec;//比赛用时
				if(dis_pre != quanshu_tenfold)			//有位移变化
				{
					V_ave=(0.154*quanshu_tenfold)/Time;
					dis_pre = quanshu_tenfold;
					sprintf(code_ave,"%.2f",V_ave);	
					LCD_ShowString(100,200,200,32,32,code_ave);//修改一下位置
					
				}
		}
			
		sprintf(code_v,"%.2f",V);					//float 转 字符串  
		LCD_ShowString(365,275,200,32,32,code_v);		//速度
		
		sprintf(code_vr,"%d",V_RPM);					//float 转 字符串  
		LCD_ShowString(365,275,200,32,32,code_vr);		//转速
 
		sprintf(mileage,"%.2f",0.154*quanshu_tenfold);
		LCD_ShowString(250,225,200,24,32,mileage);	//里程
		
	  display_dong(V_RPM,V,50);
		delay_ms(300);
	}
 }
Ejemplo n.º 8
0
/********************************************
              飞控主函数入口
功能:                                        
1.初始化各个硬件
2.初始化系统参数
3.开定时器4等待数据中断到来
4.开定时器3串口广播实时姿态以及相关信息
********************************************/
int main(void)
{
  //int i;
  SystemClock_HSE(9);           //系统时钟初始化,时钟源外部晶振HSE
  //SystemClock_HSI(4);         //系统时钟初始化,时钟源内部HSI
  UART1_init(SysClock,115200); 	//串口1初始化
  NVIC_INIT();	                //中断初始化
  STMFLASH_Unlock();            //内部flash解锁
  LedInit();		                //IO初始化 
  delay_init(SysClock);         //滴答延时初始化
  BT_PowerInit();               //蓝牙电源初始化完成,默认关闭
  MotorInit();	                //马达初始化
  BatteryCheckInit();           //电池电压监测初始化
  IIC_Init();                   //IIC初始化
  MPU6050_DMP_Initialize();     //初始化DMP引擎
  //HMC5883L_SetUp();             //初始化磁力计HMC5883L
  PID_INIT();                   //PID参数初始化 
  ParameterRead();              //Flash参数读取
  NRF24L01_INIT();              //NRF24L01初始化
  SetRX_Mode();                 //设无线模块为接收模式
  PowerOn();                    //开机等待
  BT_on();                      //蓝牙开
  TIM3_Init(SysClock,10);	      //定时器3初始化,调试串口输出
  TIM4_Init(SysClock,50);	      //定时器4初始化,定时采样传感器数据,更新PID输出
  while (1);                    //等待数据更新中断到来
}
Ejemplo n.º 9
0
void start_task(void *pdata)
{
    INT8U err;//错误码
    INT8U *pname;
    INT8U len;//名字的长度
    char buffer[16];

    OS_CPU_SR cpu_sr = 0;
    pdata = pdata;

    delay_init(168);

    OS_ENTER_CRITICLE();	//进入临界区 无法被中断打断
    OSTaskCreate(	led0Task,
                    (void *)0,
                    (OS_STK *)LED0_TASK_STK[LED0_STK_SIZE-1],
                    LED0_TASK_PRIO);//创建LED任务
    OSTaskCreate(	beepTask, (void *)0,
                    (OS_STK *)BEEP_TASK_STK[BEEP_STK_SIZE-1],
                    BEEP_TASK_PRIO);//创建BEEP任务
    OSTaskCreate(	keyTask, (void *)0,
                    (OS_STK *)KEY_TASK_STK[KEY_STK_SIZE-1],
                    KEY_TASK_PRIO);//创建keytask

    OSTaskSuspend(START_TASK_PRIO);//挂起起始任务
    OS_EXIT_CRITICLE();		//退出临界区 可以被中断打断



}
 int main(void)
 { 
	u16 adcx;
	float temp;
	delay_init();	    	 //延时函数初始化	  
	uart_init(9600);	 	//串口初始化为9600
	LED_Init();		  		//初始化与LED连接的硬件接口
 	LCD_Init();
 	Adc_Init();		  		//ADC初始化	    
	POINT_COLOR=RED;//设置字体为红色 
	LCD_ShowString(60,50,200,16,16,"Mini STM32");	
	LCD_ShowString(60,70,200,16,16,"ADC TEST");	
	LCD_ShowString(60,90,200,16,16,"ATOM@ALIENTEK");
	LCD_ShowString(60,110,200,16,16,"2014/3/9");	
	//显示提示信息
	POINT_COLOR=BLUE;//设置字体为蓝色
	LCD_ShowString(60,130,200,16,16,"ADC_CH1_VAL:");	      
	LCD_ShowString(60,150,200,16,16,"ADC_CH1_VOL:0.000V");	    
	while(1)
	{
		adcx=Get_Adc_Average(ADC_Channel_1,10);
		LCD_ShowxNum(156,130,adcx,4,16,0);//显示ADC的值
		temp=(float)adcx*(3.3/4096);
		adcx=temp;
		LCD_ShowxNum(156,150,adcx,1,16,0);//显示电压值
		temp-=adcx;
		temp*=1000;
		LCD_ShowxNum(172,150,temp,3,16,0X80);
		LED0=!LED0;
		delay_ms(250);	
	}											    
}	
Ejemplo n.º 11
0
/*******************************************************************************
*Function:系统初始化
*parm:none
*description:
*******************************************************************************/
void board_init(void)
{
    delay_init();
    LED_Init();    //LED灯初始化
    USART_Configuration(115200);//串口通信初始化
    USART2_Init(9600);
}
Ejemplo n.º 12
0
int main()  
{ 
	delay_init(72);
	uart1_init();		//串口1
	uart2_init();
	RCC_Configuration();  
	GPIO_Configuration(); 
	GPIO_ResetBits(GPIOB, GPIO_Pin_5); //PB=0,LED亮
	delay_ms(500); 	
	GPIO_SetBits(GPIOB, GPIO_Pin_5); 
	while(1)
	{		
		delay_ms(1000);
		printf("State %c\r\n", lock); //串口输出调试
		TIME_AREA();
		printf("Time :%c%c : %c%c : %c%c%c%c%c \r\n",time[0],time[1],time[2],time[3],time[4],time[5],time[6],time[7],time[8]); //串口输出调试
 		JWD_AREA(JD);  //经度转换
 		printf("Longitude  :%f %c\r\n", D_D,JD_a); //串口输出调试jd
 		JWD_AREA(WD);  //纬度转换
 		printf("Latitude   :%f %c\r\n", D_D,WD_a); //串口输出调试wd
//        printf("卫星  :%s颗\r\n", use_sat); //串口输出调试
//        printf("卫星  :%s颗\r\n", total_sat); //串口输出调试
//        printf("高度  :%sm\r\n", haiba); //串口输出调试
//				printf("海拔  :%sm\r\n", high); //串口输出调试
//        printf("速度  :%s节\r\n", speed2); //串口输出调试
//        printf("方位  :%s度\r\n", angle); //串口输出调试
	}	
} 
Ejemplo n.º 13
0
void Init(void)
{
    //时钟配置
    RCC_Configuration();
    NVIC_Configuration();
    delay_init(72);

    //串口配置
    USART1_Configuration();
    USART2_Configuration();
    USART3_Configuration();
    UART4_Configuration();
    UART5_Configuration();
    USART_ITEnable();

    //PWM配置
    PWMTIM_Configuration(72000/5,0);	      //不分频。PWM频率=Freq

    //指南针配置
    COMPASS_Init();

    //舵机配置
    SERVOS_Init();

    //设置到初始值
    PWM_Configuration(MOTOR_Speed);
    s3010_SeTAngle(SERVOS_Angle);
}
Ejemplo n.º 14
0
int main(void)
{
	delay_init();	    	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 
	uart_init(115200);	 //串口初始化为115200
	Uart2_Init(115200);
	OLED_Init();
	LED_Init();
	OLED_Clear(); 	
	KEY_Init();//IO初始化
	TIM3_Int_Init(499,7199);//10Khz的计数频率,计数到500为50ms  
	NET_Init();
	ConnectToDevice();
	delay_ms(300);
	LED2 = 0;
	delay_ms(100);
	LED2 = 1;
	EEPROM_Init();
	// ReadLedStatusFromFlash();
	StartToUploadFlag = 1;
	while(1) 
	{		
		MainMenuIntoSubMenu();
		SwitchDetect();
	}
}
Ejemplo n.º 15
0
int main(void)
{
	irq_initialize_vectors();
#if SAMD || SAMR21
	system_init();
	delay_init();
#else
	sysclk_init();

	/* Initialize the board.
	 * The board-specific conf_board.h file contains the configuration of
	 * the board initialization.
	 */
	board_init();
#endif
	
	performance_analyzer_init();
	
	cpu_irq_enable();
	
	/* Endless while loop */
	while (1)
	{		
	performance_analyzer_task();
	}
	
}
Ejemplo n.º 16
0
int main(void)
{ 
	long long temp=0;  
	float lenth=0.00;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
	delay_init(168);  //初始化延时函数
	uart_init(115200);//初始化串口波特率为115200
	LED_Init();
    
 	TIM3_CH1_Cap_Init(0XFFFF,84-1); //以1Mhz的频率计数 
   	while(1)
	{
 		delay_ms(10);
		GPIO_SetBits(GPIOF,GPIO_Pin_7 );
		delay_us(10);
		GPIO_ResetBits(GPIOF,GPIO_Pin_7 );
 		if(TIM3CH1_CAPTURE_STA&0X80)        //成功捕获到了一次高电平
		{
			temp=TIM3CH1_CAPTURE_STA&0X3F; 
			temp*=0XFFFF;		 		         //溢出时间总和
			temp+=TIM3CH1_CAPTURE_VAL;		   //得到总的高电平时间
			if(temp>=80000)
			{
				printf("no trouble\r\n");
			}
			else
			{
			  lenth=((float)temp)*340/1000000/2;
				printf("lenth:%f m\r\n",lenth); //打印总的高点平时间
				printf("%lld\r\n",temp);
			}
			TIM3CH1_CAPTURE_STA=0;			     //开启下一次捕获
		}
	}
}
Ejemplo n.º 17
0
int main(void)
 {	 
	u8 R='b';		
	delay_init(72);	    	 //延时函数初始化	  
	usart1_init();	 	//串口初始化
 	NRF24L01_Init();    	//初始化NRF24L01 
	LED();	  
 	while(NRF24L01_Check());	//检查NRF24L01是否在位.	
	
 	while(1)
	{
		NRF24L01_TX_Mode();
		if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE))
		{
			R =USART_ReceiveData(USART1);
			USART_ClearFlag(USART1, USART_FLAG_TC);		
			USART_SendData(USART1, USART_ReceiveData(USART1));
			USART_ClearFlag(USART1, USART_FLAG_RXNE);				
		}  
		NRF24L01_TxPacket(&R);  	
		if(R=='a')
		GPIO_ResetBits(GPIOE, GPIO_Pin_5); //PE=0,LED亮
		if(R=='b')
		GPIO_SetBits(GPIOE, GPIO_Pin_5); //PE=1,LED灭		
	}
}
Ejemplo n.º 18
0
int main(void)
{ 		
	Stm32_Clock_Init(9);
//		u16 temp;
	NVIC_Configuration();
	UART1_init(72,115200); 
	delay_init();  
	//初始化串口1;
	
	pid_Init();

	LED_Init();
	EXTIX_Init();
	Adc_Init();		


	Motor_Init(999,0);	
	
	HC05_Init();
	while(mpu_dmp_init());	 

// 	TIM5_Init(999,72);
	TIM2_Int_Init(999,72);//定时器3配置,1ms中断一次

	
	while(1)
	{
//		CtrlAttiAng();
//	PWM_test();
//	COMMPC_TEST();	
//	Get_angle();
//	u2_printf("hell");
	test_SendPC();//测试向PC发送协议数据,用于调控
	} 	
}
Ejemplo n.º 19
0
int main(void)
{
    // init sys
    SystemInit();

    // init peripheral
    UART_Configuration();
    delay_init();   
    KEY_GPIO_Init();
    TIM3_Int_Init(100,7199);
    Motor_Init();
    RGB_LED_Init();
    DHT11_Init();
    IR_Init();

    // init vars
    GenProtocolInit();
    BuzProtocolInit();
    UartInit();

    while(1)
    {
        // handle uart msg
        HandleMsg();
        
        // handle key events
        HandleKey();        

        // business logic tick 
        BuzTick();  
    }
}
Ejemplo n.º 20
0
int main(void)
{	 
	delay_init();	    	//???????	  
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); 	//??NVIC????2:2??????,2??????
	uart_init(115200);	 	//??????115200
 	LED_Init();			    //LED?????
	TFTLCD_Init();			//LCD???	
	KEY_Init();	 			//?????
ctp_dev.init();		//??????
	FSMC_SRAM_Init();		//???SRAM
	TIM3_Int_Init(999,71);	//1KHZ ???1ms 
	TIM6_Int_Init(999,719);	//10ms??
	my_mem_init(SRAMIN); 		//????????
	my_mem_init(SRAMEX);  		//????????
	
	RCC_AHBPeriphClockCmd(RCC_AHBPeriph_CRC,ENABLE);//??CRC??,??STemWin???? 

	GUI_Init();
	WM_SetCreateFlags(WM_CF_MEMDEV);
	
	GUI_Init();//???????? demo???????? ?????????  

  startUp_Window(); //??????
while(1);

	
}
Ejemplo n.º 21
0
int main (void)
{
	/* Insert system clock initialization code here (sysclk_init()). */
	board_init();
	sysclk_init();
	delay_init(sysclk_get_cpu_hz());
	
	//gpio_configure_pin(PORTA5,1);
	
	ioport_init();
		
	ioport_set_pin_dir(LED_GREEN,IOPORT_DIR_OUTPUT);
	ioport_set_pin_dir(LED_RED,IOPORT_DIR_OUTPUT);
	
	/* Insert application code here, after the board has been initialized. */
	
	ioport_set_pin_high(LED_RED);
	ioport_set_pin_low(LED_GREEN);
	
	
	
	
	//gpio_set_pin_high(PORTA5);
	
	while(true){
		ioport_toggle_pin(LED_GREEN);
		ioport_toggle_pin(LED_RED);
		delay_ms(500);
	}
	
}
Ejemplo n.º 22
0
void TIM3_Int_Init(u16 arr,u16 psc)
{
	TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStrue;
	NVIC_InitTypeDef NVIC_InitStructure;
	
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	
	TIM_TimeBaseInitStrue.TIM_Period=arr;
	TIM_TimeBaseInitStrue.TIM_Prescaler=psc;
	TIM_TimeBaseInitStrue.TIM_CounterMode=TIM_CounterMode_Up;
	TIM_TimeBaseInitStrue.TIM_ClockDivision=TIM_CKD_DIV1;
	
	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStrue);
	
	TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE);
	
	//中断优先级NVIC设置
	NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;//TIM3中断
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//先占优先级
	NVIC_InitStructure.NVIC_IRQChannelSubPriority=3;//从优先级
	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;//IRQ通道使能
	NVIC_Init(&NVIC_InitStructure);
	
	TIM_Cmd(TIM3,ENABLE);
	
	delay_init();//延时模板函数初始化(延时时间比较准确)
}
Ejemplo n.º 23
0
/*! \brief Main function.
 */
int main(void)
{
	irq_initialize_vectors();
#if SAMD20
	system_init();
	delay_init();
#else
	sysclk_init();

	/* Initialize the board.
	 * The board-specific conf_board.h file contains the configuration of
	 * the board initialization.
	 */
	board_init();    
#endif

	sw_timer_init();
	serial_interface_init();

	if (MAC_SUCCESS != wpan_init()) {
		app_alert();
	}

	LED_On(LED_POWER);
	cpu_irq_enable();
	

	while (1) {
		wpan_task();
		serial_data_handler();
	}
}
Ejemplo n.º 24
0
int main(void)
{
	u8 key;
	delay_init(168);
	LED_Init();
	KEY_Init();

	LED0 = 1;
	while(1)
		{
			key = KEY_Scan(0);
			if(key)
				{
					switch ( key)
					{
					    case 1:
					        LED0 = !LED0;
					        break;
					    default:
					        break;
					}
				}
		}
	
}
int main(void)
{
	/* Use static volatile to make it available in debug watch */
	static volatile bool pin_val;

	sysclk_init();
	board_init();
	ioport_init();

	delay_init(sysclk_get_cpu_hz());

	/* Set output direction on the given LED IOPORTs */
	ioport_set_pin_dir(EXAMPLE_LED, IOPORT_DIR_OUTPUT);

	/* Set direction and pullup on the given button IOPORT */
	ioport_set_pin_dir(EXAMPLE_BUTTON, IOPORT_DIR_INPUT);
	ioport_set_pin_mode(EXAMPLE_BUTTON, IOPORT_MODE_PULLUP);

	/* Set LED IOPORTs high */
	ioport_set_pin_level(EXAMPLE_LED, IOPORT_PIN_LEVEL_HIGH);

	while (true) {
		/* Toggle LED IOPORTs with half a second interval */
		ioport_toggle_pin_level(EXAMPLE_LED);
		delay_ms(500);

		/* Get value from button port */
		/* Use watch with debugger to see it */
		pin_val = ioport_get_pin_level(EXAMPLE_BUTTON);
	}
}
Ejemplo n.º 26
0
Archivo: main.c Proyecto: rmr1012/SEDS
int main(void)
{	
//	u8 i;		   	
 	Stm32_Clock_Init(9); //system clock init   always init first
	IO_Init();
	delay_init(72);	     //delay init
<<<<<<< HEAD
Ejemplo n.º 27
0
int main(void)
{ 
	float x=1;
	float p=10;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
	delay_init(168);  //初始化延时函数
	EXTIX_Init(); 
  uart_init(115200);
  TIM10_PWM_Init(10000-1,336-1);	//84M/84=1Mhz的计数频率,重装载值500,所以PWM频率为 1M/500=2Khz.   
	TIM11_PWM_Init(10000-1,336-1);
	TIM9_PWM_Inita(10000-1,336-1);
	TIM9_PWM_Initb(10000-1,336-1);
 	//TIM3_Int_Init(5000-1,8400-1);	//定时器时钟84M,分频系数8400,所以84M/8400=10Khz的计数频率,计数5000次为500ms 
  exp_point=set_point(0,0,0,750);
	MPU_Init(); 
	printf("aaa\r\n");
	while(mpu_dmp_init()){}
	//TIM3_Int_Init(100-1,8400-1);
  init_omegax.data=x;
	init_omegax.p=p;
	init_roll.data=x;
	init_roll.p=p;
	
		while(1)
	{
		LED0=!LED0;//DS0翻转
		delay_ms(200);//延时200ms
		
	};
}
Ejemplo n.º 28
0
/*
-------------------------------------------------------------------------
*  函数名称:
*  函数功能:
*  输入形参:  	
*  返回值:		 	
---------------------------------------------------------------------------
*/
void Board_Init(void)
{	
	u8 i;	
	//系统时钟配置 									   
	SystemInit();
	//延时函数初始化		   	
	delay_init(72);
	//定时器1初始化		 
	TIM1_config();
  	//舵机初始化
	Motor_Init(); 	
	Servo_Init();
	//串口配置
	USART_Config();	
	//串口中断配置   	
	NVIC_Config();
	//LED初始化		
	LED_Init();
	//按键初始化				
	KEY_Init();	 
	//等待电调中间值确定	
	for(i=0;i<3;i++)	
	{
		delay_ms(1000);
	}   	
}
Ejemplo n.º 29
0
/**
 * @brief  Ö÷º¯Êý
 * @param  ÎÞ
 * @retval ÎÞ
 */
int main(void)
{
    uint16_t Buf[10], i;

    delay_init(72);
    /* USART1 config 9600 8-N-1 */
    USART1_Config();

    Init_Mouse();

    for(;;)
    {
        if(PS2_Status&0x80)
        {
            Mouse_Data_Pro();
            PS2_Status=MOUSE;
            printf("X = %d Y = %d    \r", MouseX.x_pos,  MouseX.y_pos);
            PS2_En_Data_Report();

        }
        else if(PS2_Status&0x40)
        {
            PS2_Status=MOUSE;
        }

        delay_ms(1);

    }
}
Ejemplo n.º 30
0
int main(void)
{		
 	Stm32_Clock_Init(9); //system clock init   always init first
	IO_Init();
	delay_init(72);	     //delay init
	uart_init(72,115200);  //uart init
	PWM4_Init(150,18000);				 // ultra ping sig

//	PWM2_2Init(100,1800);	 //count to 100, freq/1800	 //IR aqusition pulse
	Timer3_Init(65535,256);	  //time refrence for echo/ultrasonic

//	setup 5 for motors?
	Timer2_Init(65535,10);	// motor try1
	motor_Init();

	EXTIX_Init();
//	Adc_Init();
//	LED0_PWM_VAL2_2=0x44;
//	LED0_PWM_VAL2_1=0x34;
	LED0_PWM_VAL4=0x34;
	IRO=0;//turn on IR LEDs

   	while(1)
	{	
		printf("adcx1\tadcx2\tadcx3\tadcx4\tGyro\tBatt\techo\n");
		printf("%u\t%u\t%u\t%u\t%u\t%u\t%u",adcx1,adcx2,adcx3,adcx4,Gyro_raw,Batt,echo);
		printf("\n");
	//	USART1->DR=echo/0xff;
	//	while((USART1->SR&0X40)==0);//wait for transfer to compleate
		LED0=!LED0; 
		delay_us(100000);//wait for the end of transmission	   
	}	 
}