Esempio n. 1
0
/**
  * @brief  Main program.
  * @param  None
  * @retval None
  */
int main(void)
{
 
  /*Initialize ARM BSP (LED) */ 
  bsp_InitLed();

	/* SERIAL_DEBUG */
  #ifdef SERIAL_DEBUG_ON
    DebugComPort_Init();
  #endif /* SERIAL_DEBUG */
  
//  xTaskCreate(pvTaskCode,   /*指向任务的实现函数的指针(效果上仅仅是函数名)*/
//              pcName,       /*具有描述性的任务名。这个参数不会被FreeRTOS使用*/
//              usStackDepth, /*栈空间大小,单位是字*/
//              pvParameters, /*任务函数接受一个指向void的指针(void*)*/
//              uxPriority,   /*指定任务执行的优先级,0到最高优先级(configMAX_PRIORITIES–1)*/
//              pxCreatedTask /*用于传出任务的句柄,不用则NULL代替。*/)
  /* Start toogleLed4 task : Toggle LED4  every 1s */
 // xTaskCreate(ToggleLed1, "LED1", configMINIMAL_STACK_SIZE, NULL, LED_TASK_PRIO, NULL);

  /* Start The CANOpen Communication */
  canopen_init();

  /* Start The Lifter Control */
  start_chassis_control();
	
	start_sensor();

  /* Start scheduler */
  vTaskStartScheduler();

	/* NEVER GET HERE as control is now taken by the SCHEDULER */
	while(1){}

}
Esempio n. 2
0
/*
*********************************************************************************************************
*	函 数 名: BSP_Init
*	功能说明: 初始化CPU时钟、按键和LED灯GPIO、设置systick中断。这个函数由应用程序调用。
*	形    参:无
*	返 回 值: 无
*********************************************************************************************************
*/
void  BSP_Init (void)
{    

	bsp_InitLed();		/* 初始化LED的GPIO */

	
    bsp_InitLCD();
	bsp_InitTouch();
			
	SysTick_Config(BSP_CPU_ClkFreq() / OS_TICKS_PER_SEC);

}
Esempio n. 3
0
/*
*********************************************************************************************************
*	函 数 名: bsp_Init
*	功能说明: 初始化所有的硬件设备。该函数配置CPU寄存器和外设的寄存器并初始化一些全局变量。只需要调用一次
*	形    参:无
*	返 回 值: 无
*********************************************************************************************************
*/
void bsp_Init(void)
{
	/*
		由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置系统时钟。
		启动文件配置了CPU主时钟频率、内部Flash访问速度和可选的外部SRAM FSMC初始化。

		系统时钟缺省配置为168MHz,如果需要更改,可以修改 system_stm32f4xx.c 文件
	*/

	bsp_InitUart(); 	/* 初始化串口 */
	bsp_InitKey();		/* 初始化按键变量(必须在 bsp_InitTimer() 之前调用) */
	bsp_InitTimer();	/* 初始化系统滴答定时器 */

	/* 针对不同的应用程序,添加需要的底层驱动模块初始化函数 */
	bsp_InitI2C();

	bsp_InitLed(); 		/* 初始LED指示灯端口 */
}
Esempio n. 4
0
/*
*********************************************************************************************************
*	函 数 名: bsp_Init
*	功能说明: 初始化硬件设备
*	形    参:无
*	返 回 值: 无
*********************************************************************************************************
*/
void BSP_Init(void)
{
//	FATFS fs;
	/* Enable CRC clock */
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_CRC, ENABLE);
	NVIC_Configuration();	/* 中断优先级分组配置 */
	
	bsp_InitNVIC();
	bsp_InitUart();				/* 初始化串口 */
	bsp_InitLed();				/* 初始LED指示灯端口 */
	bsp_InitRTC();				/* 初始化RTC */
//	bsp_InitKey(); 	       /* 按键初始化 */	


//	f_mount(0,&fs);

#ifdef TRACE_EN                                                 /* See project / compiler preprocessor options.         */
    BSP_CPU_REG_DBGMCU_CR |=  BSP_DBGMCU_CR_TRACE_IOEN_MASK;    /* Enable tracing (see Note #2).                        */
    BSP_CPU_REG_DBGMCU_CR &= ~BSP_DBGMCU_CR_TRACE_MODE_MASK;    /* Clr trace mode sel bits.                             */
    BSP_CPU_REG_DBGMCU_CR |=  BSP_DBGMCU_CR_TRACE_MODE_SYNC_04; /* Cfg trace mode to synch 4-bit.                       */
#endif
}
Esempio n. 5
0
void led_thread(void *inContext)
{
    led_log_trace();
    nearair_Context_t *airContext = inContext;
    char mode_old;
    char airclass_old;
    bsp_InitLed();
    mode_old = airContext->deviceStatus.mode;
    airclass_old = airContext->airStatus.airclass;
    
    mico_init_timer(&_led_init_timer, 500,led_init_handle, inContext);
    mico_init_timer(&_led_sleep_timer,20, led_sleep_handle,inContext);
    while(1)
    {
        if(mode_old != airContext->deviceStatus.mode)
        {
            if(mode_old == MODE_INIT)
               mico_stop_timer(&_led_init_timer);
            if(mode_old == MODE_SLEEP)
               mico_stop_timer(&_led_sleep_timer);
            
            mode_old = airContext->deviceStatus.mode;
            
            switch(mode_old)
            {
              case MODE_CLOSE:
                set_led_color(0,0,0);
                break;
              case MODE_INIT:
                mico_start_timer(&_led_init_timer);          
                break;
              case MODE_SMART:
                switch( airContext->airStatus.airclass )
                {
                  case AQ_GOOD:
                    set_led_color(0,0,99);
                    break;
                  case AQ_SOSO:
                    set_led_color(99,33,0);
                    break;
                  case AQ_BAD:
                    set_led_color(99,0,0);
                    break;
                  default:
                    break;            
                }          
                break;
              case MODE_SLEEP:
                mico_start_timer(&_led_sleep_timer);    
                break;
              case MODE_FLY:
                set_led_color(0,99,0);
                break;
              default:
                break;
            }
        }
        if(mode_old == MODE_SMART)
        {
            if(airclass_old != airContext->airStatus.airclass)
            {
                airclass_old = airContext->airStatus.airclass;
                switch( airclass_old )
                {
                  case AQ_GOOD:
                    set_led_color(0,0,99);
                    break;
                  case AQ_SOSO:
                    set_led_color(99,33,0);
                    break;
                  case AQ_BAD:
                    set_led_color(99,0,0);
                    break;
                  default:
                    break;            
                }
            }
        }
        if(airContext->setStatus.led_enable)
        {
          set_led_color(airContext->setStatus.led_r,airContext->setStatus.led_g,\
            airContext->setStatus.led_b);
        }
    }
}