コード例 #1
0
ファイル: application.c プロジェクト: liuweiqi/RealBoard4088
static void led_thread_entry(void* parameter)
{
    unsigned int count=0;
    rt_device_t led_dev=rt_device_find("led");
    rt_uint8_t led_value=0;
    while (1)
    {
        /* led1 on */
#ifndef RT_USING_FINSH
        rt_kprintf("led on, count : %d\r\n",count);
#endif
        count++;
        led_value=1;
        led_dev->write(led_dev,count%4,&led_value,1);
        rt_thread_delay( RT_TICK_PER_SECOND/2 ); /* sleep 0.5 second and switch to other thread */

        /* led1 off */
#ifndef RT_USING_FINSH
        rt_kprintf("led off\r\n");
#endif
        led_value=0;
        led_dev->write(led_dev,count%4,&led_value,1);
        rt_thread_delay( RT_TICK_PER_SECOND/2 );
    }
}
コード例 #2
0
ファイル: application.c プロジェクト: dlts200466/PowerSupply
static void rt_thread_entry_led1(void* parameter)
{
//    GPIO_InitTypeDef  GPIO_InitStructure;

    /* GPIOD Periph clock enable */
//    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);
	
		/* Configure PD12, PD13, PD14 and PD15 in output pushpull mode */
//     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
//     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
//     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
//     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
//     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
//     GPIO_Init(GPIOF, &GPIO_InitStructure);

    while(1)
    {
			
//				GPIO_SetBits(GPIOF, GPIO_Pin_6);
//			print_temp();
				rt_thread_delay(20);
//				GPIO_ResetBits(GPIOF, GPIO_Pin_6);
				rt_thread_delay(20);
    }
}
コード例 #3
0
ファイル: application.c プロジェクト: eyeye/ART
static void led_thread_entry(void* parameter)
{
    /* LED : PB2 BOOT1 config. */
    {
        GPIO_InitTypeDef  GPIO_InitStructure;

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB, ENABLE);

        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;
        /* output setting */
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_OUT;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_NOPULL;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
    }

    /* sys led blink. */
    while(1)
    {
        /* turn on led 20ms. */
        LED_SYS_ON();
        rt_thread_delay(RT_TICK_PER_SECOND/50);

        /* turn off led 1s. */
        LED_SYS_OFF();
        rt_thread_delay(RT_TICK_PER_SECOND);
    }
}
コード例 #4
0
static void thread_entry(void* parameter)
{
	rt_tick_t tick;
	rt_kprintf("thread inited ok\n");

	tick = rt_tick_get();
	rt_kprintf("thread delay 10 tick\n");
	rt_thread_delay(10);
	if (rt_tick_get() - tick > 10)
	{
		tc_done(TC_STAT_FAILED);
		return;
	}

	tick = rt_tick_get();
	rt_kprintf("thread delay 15 tick\n");
	rt_thread_delay(15);
	if (rt_tick_get() - tick > 15)
	{
		tc_done(TC_STAT_FAILED);
		return;
	}

	rt_kprintf("thread exit\n");

	tc_done(TC_STAT_PASSED);
}
コード例 #5
0
void reset_cs()
{
    GPIO_InitTypeDef GPIO_InitStructure;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_Level_3;
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    GPIO_SetBits(GPIOA,GPIO_Pin_4);
    //SPI_SSOutputCmd(SPI1, ENABLE);
    //while(1);
    //SPI_NSSInternalSoftwareConfig(SPI1,SPI_NSSInternalSoft_Set);
    rt_thread_delay(1);

    GPIO_ResetBits(GPIOA,GPIO_Pin_4);
    //SPI_SSOutputCmd(SPI1, DISABLE);
    //SPI_NSSInternalSoftwareConfig(SPI1,SPI_NSSInternalSoft_Reset);
    rt_thread_delay(1);

    GPIO_SetBits(GPIOA,GPIO_Pin_4);
    //SPI_SSOutputCmd(SPI1, ENABLE);
    //	SPI_NSSInternalSoftwareConfig(SPI1,SPI_NSSInternalSoft_Reset);
    rt_thread_delay(2);

    GPIO_PinAFConfig(GPIOA, GPIO_PinSource4, GPIO_AF_0);

    GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_DOWN;
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
    GPIO_Init(GPIOA, &GPIO_InitStructure);

    return;
}
コード例 #6
0
ファイル: sonar.c プロジェクト: tcz717/TPDT.FC_407
void sonar_thread_entry(void* parameter)
{
	rt_kprintf("start sonar\n");
	while(1)
	{
		GPIO_SetBits(GPIOE,GPIO_Pin_7);
		
		rt_thread_delay(RT_TICK_PER_SECOND*10/1000);
		
		GPIO_ResetBits(GPIOE,GPIO_Pin_7);
		
		rt_thread_delay(RT_TICK_PER_SECOND*50/1000);
		
		sonar_h=Moving_Median(PWM8_Time/58.0f*ahrs.g_z,sonar_avr,SAMPLE_COUNT);
		
		ahrs.height_v=HV_A*(ahrs.height_v+ahrs.height_acc*0.06f)+(1.0f-HV_A)*((sonar_h-ahrs.height)/0.06f);
		
		ahrs.height=sonar_h;
		h=(u16)sonar_h;
		sonar_state=sonar_h>3.0f&&sonar_h<150.0f;
		ahrs_state.sonar=!sonar_state;
		
		rt_event_send(&ahrs_event,AHRS_EVENT_SONAR);
	}
}
コード例 #7
0
//GPIO_E1
void A10_PWR_CTL(int op)
{
	int i;

	if(op==0) //Short PWREN to power up system.
	{
		PWRKEY_OFF();  
		PWRKEY_ON();
		rt_thread_delay(RT_TICK_PER_SECOND*2);
		PWRKEY_OFF(); 
	}
	else if(op==1) // Long long PWREN to shutdown system
	{
		PWRKEY_OFF(); 
		PWRKEY_ON(); 
		rt_thread_delay(RT_TICK_PER_SECOND*10);
		PWRKEY_OFF(); 
	}
	else if(op==2) // short to suspen/resume system
	{
		PWRKEY_OFF();
		PWRKEY_ON();
		rt_thread_delay(RT_TICK_PER_SECOND/2);
		PWRKEY_OFF();
	}

	return ;
}
コード例 #8
0
/* 线程2的入口函数 */
static void thread2_entry(void* parameter)
{
	/* 线程2拥有较高的优先级,以抢占线程1而获得执行 */

	/* 线程2启动后先睡眠10个OS Tick */
	rt_thread_delay(10);

	/*
	 * 线程2唤醒后直接删除线程1,删除线程1后,线程1自动脱离就绪线程
	 * 队列
	 */
	rt_thread_delete(tid1);
	tid1 = RT_NULL;

	/*
	 * 线程2继续休眠10个OS Tick然后退出,线程2休眠后应切换到idle线程
	 * idle线程将执行真正的线程1控制块和线程栈的删除
	 */
	rt_thread_delay(10);

	/*
	 * 线程2运行结束后也将自动被删除(线程控制块和线程栈依然在idle线
	 * 程中释放)
	 */
	tid2 = RT_NULL;
}
コード例 #9
0
ファイル: usb_main.c プロジェクト: Manish-cimcon/micro
void msc_thread_entry(void *parameter)
{
    extern void player_ui_freeze(void);
    unsigned long test_unit_ready_start = rt_tick_get();
    test_unit_ready_last = test_unit_ready_start;

    /* wait connection */
    while( test_unit_ready_last == test_unit_ready_start )
    {
        rt_thread_delay( RT_TICK_PER_SECOND );
    }


    /* freeze player UI */
    player_ui_freeze();

    /* wait remove */
    while(1)
    {
        rt_thread_delay( RT_TICK_PER_SECOND/2 );
        if( rt_tick_get() - test_unit_ready_last > RT_TICK_PER_SECOND*2 )
        {
//            rt_kprintf("\r\nCable removed!\r\nSystemReset\r\n\r\n");
//            NVIC_SystemReset();
        }
    }
}
コード例 #10
0
ファイル: application.c プロジェクト: wuhaixiang/VoiceCode
static void led1_thread_entry(void* parameter)
{
  /*在LED1线程中初始化LED的GPIO配置*/

  LED_GPIO_Config();
  while(1)
  {
		//rt_kprintf ( "\r\n	LED1 is going!!!\r\n");
   LED1(ON);//点亮LED1
   rt_thread_delay(100);//调用RTT的API将当前线程挂起200ticks,也就是1sec
   LED1(OFF);//关闭LED1
		  rt_thread_delay(100);
		if(bMp3Play == 0)
   sys_wake_count++;
   if(sys_wake_count==sys_default_count)
   	{
		sys_wake_count=0;
		if(sys_wake)
			{
				sys_wake=0;
				rt_kprintf("系统进入休眠状态,如需使用请唤醒!\r\n");
			 rt_mb_send(&mb,(rt_uint32_t)sys_down_mp3);//发送邮件
			}
   }
  }
}
コード例 #11
0
ファイル: hub.c プロジェクト: DigFarmer/aircraft
/**
 * This function will rest hub port, it is invoked when sub device attached to the hub port.
 *
 * @param intf the interface instance.
 * @param port the hub port.
 * 
 * @return the error code, RT_EOK on successfully.
 */
rt_err_t rt_usbh_hub_reset_port(uhub_t hub, rt_uint16_t port)
{
    rt_err_t ret;
    rt_uint32_t pstatus;
    
    /* parameter check */
    RT_ASSERT(hub != RT_NULL);
    
    rt_thread_delay(50);

    /* reset hub port */
    ret = rt_usbh_hub_set_port_feature(hub, port, PORT_FEAT_RESET);
    if(ret != RT_EOK) return ret;

    while(1)
    {
        ret = rt_usbh_hub_get_port_status(hub, port, (rt_uint8_t*)&pstatus);
        if(!(pstatus & PORT_PRS)) break;
    }
    
    /* clear port reset feature */
    ret = rt_usbh_hub_clear_port_feature(hub, port, PORT_FEAT_C_RESET);    
    if(ret != RT_EOK) return ret;

    rt_thread_delay(50);    

    return RT_EOK;
}
コード例 #12
0
ファイル: usb_bsp.c プロジェクト: ADTL/realtouch-stm32f4
/**
  * @brief  USB_OTG_BSP_mDelay
  *          This function provides delay time in milli sec
  * @param  msec : Value of delay required in milli sec
  * @retval None
  */
void USB_OTG_BSP_mDelay (const uint32_t msec)
{
    if(msec >= 10)
        rt_thread_delay(msec / 10);
    else
        rt_thread_delay(msec / 1);
}
コード例 #13
0
ファイル: transfer_app.c プロジェクト: trigrass2/MircoFlyV0.7
void rt_transfer_thread_entry(void *parameter)
{
//	rt_uint16_t ms_20=0,ms_100=0,ms_1000=0;
//	char buff[33];
	T_RC_Status data;
//	T_RC_Voltage voltage;
	T_RC_Sensor Sensor;
//	rt_uint32_t _temp[3];
//	rt_uint8_t i;
	
	rt_thread_delay(1000);
	
	for(;;)
	{
		//NRF24_Check_Event();
		/*Pms_20++;
		if(ms_20==100)
		{
			ms_20=0;
			for(i=0;i<3;i++)
			{	
				_temp[i]=read_battert_adc_value();
			}
			voltage.Voltage1=(float)_temp[0]/4095.0f*3.3f*2;
			voltage.Voltage2=(float)_temp[1]/4095.0f*3.3f*2;
			voltage.Voltage3=(float)_temp[2]/4095.0f*3.3f*2;
			Data_Send_Voltage(&voltage);
		}*/

#if 1
		data.ANGLE.rol=angleActual.rol;
		data.ANGLE.pit=angleActual.pit;
		data.ANGLE.yaw=angleActual.yaw;
		data.ALT_CSB=1234;
		data.ALT_PRS=1234;
		data.ARMED=0;
		Data_Send_Status(&data);

		Sensor.ACC.X=accelMpu.x;
		Sensor.ACC.Y=accelMpu.y;
		Sensor.ACC.Z=accelMpu.z;
		Sensor.GYR.X=gyroMpu.x;
		Sensor.GYR.Y=gyroMpu.y;
		Sensor.GYR.Z=gyroMpu.z;
		Sensor.MAG.X=magMpu.x;
		Sensor.MAG.Y=magMpu.y;
		Sensor.MAG.Z=magMpu.z;	

		Sensor.MAG.X=magCorrect.x;
		Sensor.MAG.Y=magCorrect.y;
		Sensor.MAG.Z=magCorrect.z;			
		Data_Send_Senser(&Sensor);
		
#endif
		rt_thread_delay(20);
		
	}
}
コード例 #14
0
void lcd_test(void)
{
    lcd_clear(0xf800);
    rt_thread_delay(200);
    lcd_clear(0x07e0);
    rt_thread_delay(200);
    lcd_clear(0x001f);
    rt_thread_delay(200);
}
コード例 #15
0
ファイル: demo.c プロジェクト: 003900107/realboard-lpc4088
static void worker_thread_entry(void* parameter)
{
    rt_thread_delay(5);
    for(worker_count = 0; worker_count < 5; worker_count++)
    {
        rt_kprintf("worker:count: %d\n", worker_count);
        rt_thread_delay(5);
    }
}
コード例 #16
0
ファイル: demo.c プロジェクト: 003900107/realboard-lpc4088
static void worker_thread_entry(void* parameter)
{
    rt_thread_delay(5);
    for(worker_count = 0; worker_count < 10; worker_count++)
    {
        rt_kprintf("worker:  count: %d\n", worker_count);
    }
    rt_thread_delay(RT_TICK_PER_SECOND);
}
コード例 #17
0
static void worker_thread_entry(void* parameter)
{
	rt_thread_delay(10);

	while (1) {
		rt_sem_release(sem);
		rt_thread_delay(5);
	}
}
コード例 #18
0
ファイル: application.c プロジェクト: blueskycoco/dm3730-spi
static void rt_init_thread_entry(void* parameter)
{
	rt_thread_t system_thread;
	rt_uint8_t buf[256];
	/* Initialization RT-Thread Components */
#ifdef RT_USING_COMPONENTS_INIT
	rt_components_init();
#endif

	/* Set finsh device */
#ifdef  RT_USING_FINSH
	finsh_set_device(RT_CONSOLE_DEVICE_NAME);
#endif  /* RT_USING_FINSH */
	rt_hw_led1_off();
	//cmx865a_init();


	unsigned int count=1000;
	rt_memset(buf,'\0',256);
	rt_hw_led_init();
//	rt_kprintf("led on, count : %d\r\n",count);
	//rt_sprintf(buf,"%s","- RT -    Thread Operating System");
		
	//	ST7585_Write_String(0,5,"- RT -    ");
	//ST7585_Write_String(0,4,"Thread Operating System");
	//	Draw_bat(3);
	//b(0,1);
r(0);
	while (1)
	{
		
		/* led1 on */
#ifdef RT_USING_FINSH
		rt_kprintf("led on , count : %d\r\n",count);
#endif
	
		
	//	rt_sprintf(buf,"led on , count : %d",count);
	//	ST7585_Write_String(0,5,buf);

		//test_cmx865a();
		count++;
		rt_hw_led1_off();
		rt_thread_delay( RT_TICK_PER_SECOND/2 ); /* sleep 0.5 second and switch to other thread */

		/* led1 off */
#ifdef RT_USING_FINSH
		rt_kprintf("led off\r\n");
#endif
	//	rt_sprintf(buf,"led off, count : %d",count);
	//	ST7585_Write_String(0,5,buf);

		rt_hw_led1_on();
		rt_thread_delay( RT_TICK_PER_SECOND/2 );
	}
}
コード例 #19
0
ファイル: demo_thread.c プロジェクト: Coing/rt-thread
static void thread1_entry(void* parameter)					
{
    while(1)
    {
			Led_Control(0,1);
			rt_thread_delay(RT_TICK_PER_SECOND);
			Led_Control(0,0);
			rt_thread_delay(RT_TICK_PER_SECOND);
    }
}
コード例 #20
0
ファイル: cv_vam_lip.c プロジェクト: gexueyuan/cct
void rt_vam_thread_entry(void *parameter)
{
	vam_stastatus_t location ;
	rt_thread_delay(500);
	timer_start();
	while(1){
		_vsm_get_local_status(&location) ;
		rt_thread_delay(10);
	}
}
コード例 #21
0
static void led_thread_entry(void *parameter)
{
    while (1)
    {
        led_on();
        rt_thread_delay(RT_TICK_PER_SECOND);
        led_off();
        rt_thread_delay(RT_TICK_PER_SECOND);
    }
}
コード例 #22
0
ファイル: osd_menu.c プロジェクト: pigeon0411/eb120_ec11_new
void osd_test(void)
{	u8 t;
		OLED_Init();			//3?¨º??¡¥OLED  
		OLED_Clear()  	; 
	
		t=' ';
		OLED_ShowCHinese(0,0,0);//?D
				OLED_ShowCHinese(18,0,1);//?¡ã
		OLED_ShowCHinese(36,0,2);//?¡ã
		OLED_ShowCHinese(54,0,3);//¦Ì?
		OLED_ShowCHinese(72,0,4);//¡Á¨®
		OLED_ShowCHinese(90,0,5);//??
		OLED_ShowCHinese(108,0,6);//??
	while(1) 
	{		
		OLED_Clear();
		OLED_ShowCHinese(0,0,0);//?D
		OLED_ShowCHinese(18,0,1);//?¡ã
		OLED_ShowCHinese(36,0,2);//?¡ã
		OLED_ShowCHinese(54,0,3);//¦Ì?
		OLED_ShowCHinese(72,0,4);//¡Á¨®
		OLED_ShowCHinese(90,0,5);//??
		OLED_ShowCHinese(108,0,6);//??
		OLED_ShowString(6,3,"0.96' OLED TEST",16);

				OLED_ShowString(6,4,"0.96' OLED TEST",16);
		OLED_ShowString(0,5,"0.96' OLED TEST",16);

		OLED_ShowString(0,6,"0.96' OLED TEST",16);
		OLED_ShowString(1,7,"0.96' OLED TEST",16);

		OLED_ShowString(6,3,"0.96' OLED TEST",16);

		//OLED_ShowString(8,2,"ZHONGJINGYUAN");  
	 //	OLED_ShowString(20,4,"2014/05/01");  
		OLED_ShowString(0,6,"ASCII:",16);  
		OLED_ShowString(63,6,"CODE:",16);  
		OLED_ShowChar(48,6,t,16);//??¨º?ASCII¡Á?¡¤?	   
		t++;
		if(t>'~')t=' ';
		OLED_ShowNum(103,6,t,3,16);//??¨º?ASCII¡Á?¡¤?¦Ì????¦Ì 	
		rt_thread_delay(1000*3);


		OLED_DrawBMP(0,0,128,8,BMP1);  //¨ª?????¨º?(¨ª?????¨º?¨¦¡Â¨®?¡ê?¨¦¨²3¨¦¦Ì?¡Á?¡À¨ª??¡ä¨®¡ê??¨¢??¨®????¨¤????¡ê?FLASH????8K¨°???¨¦¡Â¨®?)
		rt_thread_delay(1000*3);

		OLED_DrawBMP(0,0,128,8,BMP1);
		rt_thread_delay(1000*3);


	}	
	
}
コード例 #23
0
ファイル: application.c プロジェクト: 54chenjq/rt-thread
void rt_led_thread_entry(void* parameter)
{
	while(1)
	{
		/* light on leds for one second */
		rt_thread_delay(100);

		/* light off leds for one second */
		rt_thread_delay(100);
	}
}
コード例 #24
0
void thread_led2_entry(void* parameter)
{
    volatile unsigned int i;
    IO1DIR |= LED2;
    while(1)
    {
        IO1CLR = LED2;
        rt_thread_delay( RT_TICK_PER_SECOND/2 ); /* delay 0.5s */
        IO1SET = LED2;
        rt_thread_delay( RT_TICK_PER_SECOND/2 );
    }
}
コード例 #25
0
static void rt_thread_entry_led(void* parameter)
{
    while (1)
    {
        /* led off */
        led_off();
        rt_thread_delay(20); /* sleep 1 second and switch to other thread */
        /* led on */
        led_on();
        rt_thread_delay(40);
    }
}
コード例 #26
0
ファイル: task4.c プロジェクト: dlts200466/PowerSupply
void rt_task4_thread_entry(void* parameter)
{
	extern void start_transmit(void);
 	extern void stop_transmit(void);
	extern uint8_t check_parameter(void);
//	extern uint8_t self_check(void);
//	extern void cpu_usage_init();
	rt_uint32_t ev;
	
	if((GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3) == 0))
	{
		coil.usRegCoilBuf |= M(0);
	}
	else
	{
		coil.usRegCoilBuf &= ~M(0);
	}
	
	rt_event_init(&key_event, "key_event", RT_IPC_FLAG_FIFO );
	
	while(1)
	{
		if( rt_event_recv( &key_event, FOOT_PUPD | KEY_PUPD, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, RT_WAITING_FOREVER, &ev ) == RT_EOK ) 
		{
			
				rt_thread_delay(6);
				if( (ev & FOOT_PUPD) && (coil.usRegCoilBuf & M(0)) &&(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0)&& \
					(check_parameter()) && (coil.usRegCoilBuf & M(7)))
				{
					start_transmit();
				}
				else
				{
					stop_transmit();
				}
				
				if(ev & KEY_PUPD)
				{
					if((GPIO_ReadInputDataBit(GPIOD, GPIO_Pin_3) == 0))
					{
						coil.usRegCoilBuf |= M(0);
					}
					else
					{
						coil.usRegCoilBuf &= ~M(0);
					}
				}
		}
		rt_event_recv( &key_event, FOOT_PUPD | KEY_PUPD, RT_EVENT_FLAG_OR | RT_EVENT_FLAG_CLEAR, 2, &ev );
		
		rt_thread_delay(20);
	}
}
コード例 #27
0
ファイル: thread_log.c プロジェクト: cvrobot/deepblueplane
//log 主程序
void thread_log(void)
{	
	//wating for the first update of the system times
	rt_thread_delay(1000);
	
	log_init();
	
	while(1)
	{
		rt_thread_delay(5);

	}
}
コード例 #28
0
void reset_cs()
{
    cs(0);
    clk(0);
    cs(1);
    rt_thread_delay(10);
    cs(1);
    rt_thread_delay(1);
    cs(0);
    rt_thread_delay(1);
    cs(1);
    rt_thread_delay(10);
}
コード例 #29
0
static void rt_thread_entry_led1(void* parameter)
{
    int n = 0;
//	int stage=0;
    rt_uint32_t offset=0;
//	int i=2000;
//	int delta = 50;
    rt_hw_led_init();
	dac_dma();
	
	/*SIM->SCGC2 |= SIM_SCGC2_DAC0_MASK;
		DAC0->C0 |= DAC_C0_DACEN_MASK
				   |DAC_C0_DACRFS_MASK
				   |DAC_C0_DACTRGSEL_MASK;
		
		DAC0->DAT[0].DATL = stage &  0xFF;
		DAC0->DAT[0].DATH = stage >> 8;
		DAC0->C0 |= DAC_C0_DACSWTRG_MASK;
*/
    while (1)
    {
        //rt_kprintf("LED\t%d\tis shining\r\n",n);
		/*if(i==2000)
			  delta = 50;
			else if(i==4000)
			  delta = -50;
			
			i += delta;
*/
        rt_hw_led_on(n);
        rt_thread_delay(RT_TICK_PER_SECOND/2);
		/*rt_kprintf("i is %d\r\n",i);
		DAC0->DAT[0].DATL = i &  0xFF;
		DAC0->DAT[0].DATH = i >> 8;
		DAC0->C0 |= DAC_C0_DACSWTRG_MASK;*/
	if(!Mem_Check(offset))
		//rt_kprintf("offset %x test ok\r\n",offset);
	//else
		rt_kprintf("offset %x test failed\r\n",offset);
	offset++;
	if(offset==0x10000)
		offset=0;
        rt_hw_led_off(n);
        rt_thread_delay(RT_TICK_PER_SECOND/2);

        n++;
		//stage=stage+100000;
        if (n == (LED_MAX+1))
            n = 0;
    }
}
コード例 #30
0
/* 线程2入口 */
static void thread2_entry(void* parameter)
{
	/* 延时10个OS Tick */
	rt_thread_delay(10);

	/* 挂起线程1 */
	rt_thread_suspend(tid1);

	/* 延时10个OS Tick */
	rt_thread_delay(10);

	/* 线程2自动退出 */
	tid2 = RT_NULL;
}