コード例 #1
0
ファイル: button.c プロジェクト: zinuzoid/zOS
static void ButtonTask_Init(uint8 btnindex,const char *channelname,uint16 channel,uint8 *fn)
{
  static char buf1[20];
  static char buf2[20];
  
  if(btnindex>=CHANNEL)
    return;
  if(!fn)
    return;
  
  TBUTTON *btn;
  btn=&tbtn[btnindex];

  btn->channelname=channelname;
  btn->channel=channel;
  btn->count=0;
  btn->latchcount=0;
  btn->logicout=0;
  btn->state=0;
  btn->toggle=0;
  btn->latchtoggle=0;
  btn->fnPhy=(uint8(*)(uint16))fn;

  sprintf(buf1,"Button%s",channelname);
  TaskAdd(&btntask[btnindex],buf1,1,ButtonTask_1ms,btn);
  sprintf(buf2,"%sCheck",buf1);
  TaskAdd(&printtask[btnindex],buf2,10,Button_PrintPolling,btn);
}
コード例 #2
0
//end Application Layer
//------------------------------------------------------------------------------------------------
//Middle Layer
static void LEDTask_Init(TLED *ledptr,uint16 channel,uint8 mode,void *fn)
{
    if(!ledptr)
        return;

    ledptr->count=0;
    ledptr->mode=mode;
    ledptr->channel=channel;
    ledptr->toggle=0;
    ledptr->fnPhy=(void(*)(uint16,uint8))fn;

    switch(channel)
    {
    case GPIO_Pin_8:
        TaskAdd(&taskled[0],"LEDPC8",100,LEDTask_100ms,ledptr);
        break;
    case GPIO_Pin_9:
        TaskAdd(&taskled[1],"LEDPC9",100,LEDTask_100ms,ledptr);
        break;
    }
}
コード例 #3
0
ファイル: NetServer.cpp プロジェクト: mildrock/Media
/***********************************************************************************************************************
Function: SrvThreadBody
Description:
Called By:
Input:
Output:
Return:
Others:
************************************************************************************************************************/
S32 CNetServer::SrvThreadBody()
{
    ASSERT(NULL != m_pSock);
    ASSERT(NULL != m_pThreadPool);
    Socket_t sHandle;
    while (true)
    {
        sHandle = m_pSock->Accept();
        if (SOCK_HANDLE_OK(sHandle))
        {
            TaskAdd(sHandle);
        }
    }

    return MW_SUCC;
}
コード例 #4
0
ファイル: Drv_ADC.c プロジェクト: bearxiong99/XXOO_000
/*******************************************************************************
 * @function_name: Init_Adc
 * @function_file: Drv_Adc.c
 * @描述:初始化ADC配置
 * @入口参数: 
   powerOn 1-on 0-off
 * @出口参数: 无
 *---------------------------------------------------------
 * @修改人: ffq    (2013-10-09)
 ******************************************************************************/
void DRV_ADC_Init(uint8 powerOn)
{
  //温度采样电路电源控制IO,其它在AD中初始化
	IO_DisableFunc(IO_PORT4,IO_PINxE);
	IO_ConfigGPIOPin(IO_PORT4,IO_PINxE,IO_DIR_OUTPUT,IO_PULLUP_OFF);
    
    IO_EnableAnalogInput(IO_AN00);    //TEMP
    IO_EnableAnalogInput(IO_AN01);    // TEMP_A
    IO_EnableAnalogInput(IO_AN02);    //V_1.8V
	IO_EnableAnalogInput(IO_AN03);//V_CHK
	IO_EnableAnalogInput(IO_AN04);//BATCHK
    /*------------------- Global setting -----------------------*/
    /* Set sample time */
    ADC12_SelSampleTimeReg(ADC12_UNIT0, ADC12_CH0, ADC12_SAMPLE_TIME_SEL_REG0);
    ADC12_SelSampleTimeReg(ADC12_UNIT0, ADC12_CH1, ADC12_SAMPLE_TIME_SEL_REG0);
    ADC12_SelSampleTimeReg(ADC12_UNIT0, ADC12_CH2, ADC12_SAMPLE_TIME_SEL_REG0);
	ADC12_SelSampleTimeReg(ADC12_UNIT0, ADC12_CH3, ADC12_SAMPLE_TIME_SEL_REG0);
	ADC12_SelSampleTimeReg(ADC12_UNIT0, ADC12_CH4, ADC12_SAMPLE_TIME_SEL_REG0);
    ADC12_SetSampleTime0(ADC12_UNIT0, 9, ADC12_SAMPLE_TIME_N4);
    /* Set compare time */
    ADC12_SetCompareTime(ADC12_UNIT0, 2);
    /* Start ADC operation */
    ADC12_EnableOpt(ADC12_UNIT0);
    while(SET != ADC12_GetOptStat(ADC12_UNIT0));
    /*------------------- Scan mode setting -----------------------*/
    /* Select channel */
    ADC12_SelScanCh(ADC12_UNIT0, ((1ul<<ADC12_CH0) 
    								| (1ul<<ADC12_CH1) 
    								| (1ul<<ADC12_CH2) 
    								| (1ul<<ADC12_CH3) 
    								| (1ul<<ADC12_CH4)));
    /* Clear FIFO */
    ADC12_ClrScanFIFO(ADC12_UNIT0);
    /* Set FIFO stage */
    ADC12_SetScanFIFOStage(ADC12_UNIT0, (ADC12_ScanFIFOStageT)(USER_ADC_SCAN_CH_NUM-1));

    /* Set Scan mode */
    ADC12_SetScanMode(ADC12_UNIT0 , ADC12_SCAN_MODE_ONE_SHOT);
    /* Enable scan interrupt */
    ADC12_EnableScanInt(ADC12_UNIT0, ScanIntCallback);
    /* Enable ADC IRQ */
    NVIC_EnableIRQ((IRQn_Type)(ADC0_IRQn + (ADC12_UNIT0-ADC12_UNIT0)));
    /* Start scan */
    //ADC12_StartScan(ADC12_UNIT0);

	//连续采样5次,填充滤波缓存。
	DRV_ADC_On();
        
    DRV_ADC_StartTask();
    while(RESET != ADC12_GetScanStatusFlag(ADC12_UNIT0));
    DRV_ADC_StartTask();
    while(RESET != ADC12_GetScanStatusFlag(ADC12_UNIT0));
    DRV_ADC_StartTask();
    while(RESET != ADC12_GetScanStatusFlag(ADC12_UNIT0));
    DRV_ADC_StartTask();
    while(RESET != ADC12_GetScanStatusFlag(ADC12_UNIT0));
    DRV_ADC_StartTask();
    while(RESET != ADC12_GetScanStatusFlag(ADC12_UNIT0));
   
	DRV_ADC_Off();

    if(powerOn)
    {
      DRV_ADC_On();
      //定时1s采样
      //TempNTCPower(OFF);
      TaskAdd(DRV_ADC_StartTask, 0, 100, 1);
    }
    else
    {
      DRV_ADC_Off();
    }
}