亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? lmp_blst.c

?? IT projecotr reference design.
?? C
?? 第 1 頁 / 共 3 頁
字號:

    /* Set Waveform Index */
    write_buffer[0] = 0x71;
    write_buffer[1] = Waveform_Index;
    error = URT_Write (LMP_BLST_PortNum, 2, &write_buffer[0], LMP_BLST_UART_DELAY, &numBytesWritten);

    if (error == PASS)
    {
        /* Check response for "Waveform Selection" command */
        error = URT_Read  (LMP_BLST_PortNum, 2, &read_buffer[0],  LMP_BLST_UART_DELAY, &numBytesRead);

        if (error == PASS)
        {
            if (read_buffer [0] == 0x71)
            {
                if (LMP_BLST_CurrERR != LMP_BLST_NOSEQMATCH)
                    LMP_BLST_SetLampStatus (FALSE, PASS);

                LMP_BLST_CurrWaveformIndex = Waveform_Index;
            }
            else
            {
                error = LMP_BLST_BALLASTERR;
                LMP_BLST_SetLampStatus (TRUE, error);
            }
        }
        else
        {
            if (error == URT_TIMEOUT)
                error = LMP_BLST_TIMEOUT;
            else
                error = LMP_BLST_URTERR;

            LMP_BLST_SetLampStatus (TRUE, error);
        }
    }
    else
    {
        if (error == URT_TIMEOUT)
            error = LMP_BLST_TIMEOUT;
        else
            error = LMP_BLST_URTERR;

        LMP_BLST_SetLampStatus (TRUE, error);
    }

    RTA_SemRelease(LMP_BLST_Sem);

    return error;
}


/****************************************************************************/
/* This function returns the number of waveforms stored in the ballast.     */
/*                                                                          */
/* return Number of Waveforms.                                              */
/****************************************************************************/

uint08 LMP_BLST_GetNumWaveforms (void)
{
    return LMP_BLST_NumWaveforms;
}


/****************************************************************************/
/* This function returns the current waveform selected.                     */
/*                                                                          */
/*  param  WaveformID - O - Current waveform id                             */
/*                                                                          */
/*  return PASS = Successful                                                */
/*         FAIL = Unsuccessful                                              */
/*         LMP_BLST_INUSEERR     = Lamp UART is in use                      */
/*         LMP_BLST_TIMEOUT      = UART Timeout                             */
/*         LMP_BLST_URTERR       = UART all other Errors                    */
/*         LMP_BLST_BALLASTERR   = Ballast returned error                   */
/****************************************************************************/

int08 LMP_BLST_GetWaveformID (uint08 *WaveformID)
{
    int08   error = FAIL;

    if(RTA_SemReserve(LMP_BLST_Sem, TMR_ConvertMSToTicks(LMP_BLST_SEM_DELAY)) != RTA_SUCCESS)
        return LMP_BLST_INUSEERR;

    URT_FlushReadFIFO(LMP_BLST_PortNum); /* Discard any spurious data */

    /* Get Waveform ID */
    write_buffer[0] = 0xF2;
    error = URT_Write (LMP_BLST_PortNum, 1, &write_buffer[0], LMP_BLST_UART_DELAY, &numBytesWritten);
    error = URT_Read  (LMP_BLST_PortNum, 2, &read_buffer[0],  LMP_BLST_UART_DELAY, &numBytesRead);

    if (error == PASS)
    {
        if (read_buffer [0] == 0xF2)
            *WaveformID = read_buffer[1];
        else
            error = LMP_BLST_BALLASTERR;
    }
    else
    {
        if (error == URT_TIMEOUT)
            error = LMP_BLST_TIMEOUT;
        else
            error = LMP_BLST_URTERR;
    }
        
    RTA_SemRelease(LMP_BLST_Sem); 
    return error;
}


/****************************************************************************/
/* This function returns the currently selected waveform index.             */
/*                                                                          */
/* return Waveform Index, sets by the LMP_BLST_SetWaveform command or select*/
/* automatically by the Sequence.                                           */
/****************************************************************************/

uint08 LMP_BLST_GetWaveformIndex (void)
{
    return LMP_BLST_CurrWaveformIndex;
}


/****************************************************************************/
/* This function sets the output power level of the lamp.                   */
/* NOTE that some ballast manufacturers provide a command to lower the      */
/* overall power of the lamp.  This command (commonly known as DIM) must be */
/* entered via the waveform programming mailbox.                            */
/*                                                                          */
/*  param  Waveform_Gain - I - Waveform Gain range 0x0 to 0xFF. This should */
/*                             be between (inclusive) minimum and maximum   */
/*                             allowed limit. Refer LMP_BLST_GetMaxGain()   */
/*                             and LMP_BLST_GetMinGain().                   */
/*                                                                          */
/*  return PASS = Successful                                                */
/*         FAIL = Unsuccessful                                              */
/*         LMP_BLST_INUSEERR     = Lamp UART is in use                      */
/*         LMP_BLST_TIMEOUT      = UART Timeout                             */
/*         LMP_BLST_URTERR       = UART all other Errors                    */
/*         LMP_BLST_BALLASTERR   = Ballast returned error                   */
/****************************************************************************/

int08  LMP_BLST_SetWaveformGain (uint08 Waveform_Gain)
{
    int08   error = FAIL;

    /* Return if it is the same waveform gain */
    if (Waveform_Gain == LMP_BLST_CurrWaveformGain)
        return PASS;
    
    /* Set the OOR flag if the gain is out of range */
    if (!INRNG(LMP_BLST_MinGain, Waveform_Gain, LMP_BLST_MaxGain))
    {
        error = LMP_BLST_SetLampStatus (TRUE, LMP_BLST_WAVEFORMGAIN_OOR);
        return LMP_BLST_WAVEFORMGAIN_OOR;
    }
    

    if(RTA_SemReserve(LMP_BLST_Sem, TMR_ConvertMSToTicks(LMP_BLST_SEM_DELAY)) != RTA_SUCCESS)
        return LMP_BLST_INUSEERR;

    URT_FlushReadFIFO(LMP_BLST_PortNum); /* Discard any spurious data */

    /* Set Waveform Gain */
    write_buffer[0] = 0x72;
    write_buffer[1] = Waveform_Gain;            /* actual gain = gain value / 128 */
    error = URT_Write (LMP_BLST_PortNum, 2, &write_buffer[0], LMP_BLST_UART_DELAY, &numBytesWritten);

    if (error == PASS)
    {
        /* Check response for "Waveform Gain" command */
        error = URT_Read  (LMP_BLST_PortNum, 2, &read_buffer[0],  LMP_BLST_UART_DELAY, &numBytesRead);

        if (error == PASS)
        {
            if (read_buffer[0] == 0x72)
            {
                if ((LMP_BLST_CurrERR != LMP_BLST_NOSEQMATCH) && (LMP_BLST_CurrERR != LMP_BLST_WAVEFORM_OOR))
                    LMP_BLST_SetLampStatus (FALSE, PASS);

                LMP_BLST_CurrWaveformGain = read_buffer [1];    /* set to what we read back */
            }
            else
            {
                error = LMP_BLST_BALLASTERR;
                LMP_BLST_SetLampStatus (TRUE, error);
            }
        }
        else
        {
            if (error == URT_TIMEOUT)
                error = LMP_BLST_TIMEOUT;
            else
                error = LMP_BLST_URTERR;

            LMP_BLST_SetLampStatus (TRUE, error);
        }
    }
    else
    {
        if (error == URT_TIMEOUT)
            error = LMP_BLST_TIMEOUT;
        else
            error = LMP_BLST_URTERR;

        LMP_BLST_SetLampStatus (TRUE, error);
    }

    RTA_SemRelease(LMP_BLST_Sem);

    return error;
}


/****************************************************************************/
/* This function returns the current waveform gain value.                   */
/*                                                                          */
/*  return Waveform Gain = sets by the LMP_BLST_Set_Waveform_Gain command   */
/****************************************************************************/

uint08 LMP_BLST_GetWaveformGain (void)
{
    return LMP_BLST_CurrWaveformGain;
}

/****************************************************************************/
/* This function returns the minimum value allowable for the waveform gain  */
/* command.                                                                 */
/*                                                                          */
/*  return Minimum Gain value.                                              */
/****************************************************************************/

uint08 LMP_BLST_GetMinGain (void)
{
    return LMP_BLST_MinGain;
}

/****************************************************************************/
/* This function returns the maximum value allowable for the waveform gain  */
/* command.                                                                 */
/*                                                                          */
/*  return Maximum Gain Value.                                              */
/****************************************************************************/

uint08 LMP_BLST_GetMaxGain (void)
{
    return LMP_BLST_MaxGain;
}

/****************************************************************************/
/* This function opens the mailbox with the StartAddr specified. The address*/
/* will be automatically incremented upon mailbox read/ write.              */
/*                                                                          */
/*  param  StartAddr - I - Start address.                                   */
/*                                                                          */
/*  return PASS = Successful                                                */
/*         FAIL = Unsuccessful                                              */
/*         LMP_BLST_INUSEERR     = Lamp UART is in use                      */
/*         LMP_BLST_TIMEOUT      = UART Timeout                             */
/*         LMP_BLST_URTERR       = UART all other Errors                    */
/*         LMP_BLST_BALLASTERR   = Ballast returned error                   */
/****************************************************************************/

int08  LMP_BLST_OpenMailBox (uint16 StartAddr)
{
    int08   error = FAIL;

    if(RTA_SemReserve(LMP_BLST_Sem, TMR_ConvertMSToTicks(LMP_BLST_SEM_DELAY)) != RTA_SUCCESS)
        return LMP_BLST_INUSEERR;

    URT_FlushReadFIFO(LMP_BLST_PortNum); /* Discard any spurious data */

    /* Waveform Mailbox Control */
    write_buffer[0] = 0x74;
    write_buffer[1] = (StartAddr & 0xFF00) >> 8;        /* High Byte */
    write_buffer[2] = (StartAddr & 0xFF);               /* Low Byte  */
    write_buffer[3] = TRUE;     /* enable access */
    error = URT_Write (LMP_BLST_PortNum, 4, &write_buffer[0], LMP_BLST_UART_DELAY, &numBytesWritten);

    if (error == PASS)
    {
        error = URT_Read  (LMP_BLST_PortNum, 4, &read_buffer[0],  LMP_BLST_UART_DELAY, &numBytesRead);

        if (error == PASS)
        {
            if (read_buffer[0] == 0x74)
            {
                if ((LMP_BLST_CurrERR != LMP_BLST_NOSEQMATCH) && (LMP_BLST_CurrERR != LMP_BLST_WAVEFORM_OOR))
                    LMP_BLST_SetLampStatus (FALSE, PASS);
            }
            else
            {
                error = LMP_BLST_BALLASTERR;
                LMP_BLST_SetLampStatus (TRUE, error);
            }
        }
        else
        {
            if (error == URT_TIMEOUT)
                error = LMP_BLST_TIMEOUT;
            else
                error = LMP_BLST_URTERR;

            LMP_BLST_SetLampStatus (TRUE, error);
        }
    }
    else
    {
        if (error == URT_TIMEOUT)
            error = LMP_BLST_TIMEOUT;
        else
            error = LMP_BLST_URTERR;

        LMP_BLST_SetLampStatus (TRUE, error);
    }

    RTA_SemRelease(LMP_BLST_Sem);
                        
    return error;
}


/****************************************************************************/
/* This function writes to the mailbox starting at the StartAddr with       */
/* LMP_BLST_OpenMailBox API call, consecutive call to LMP_BLST_WriteMailBox */
/* API will cause the next byte to be written.                              */
/*                                                                          */
/*  param  Data - I - Data to be written to mailbox                         */
/*                                                                          */
/*  return PASS = Successful                                                */
/*         FAIL = Unsuccessful                                              */
/*         LMP_BLST_INUSEERR     = Lamp UART is in use                      */
/*         LMP_BLST_TIMEOUT      = UART Timeout                             */
/*         LMP_BLST_URTERR       = UART all other Errors                    */
/*         LMP_BLST_BALLASTERR   = Ballast returned error                   */
/****************************************************************************/

int08  LMP_BLST_WriteMailBox (uint08 Data)
{
    int08   error = FAIL;

    if(RTA_SemReserve(LMP_BLST_Sem, TMR_ConvertMSToTicks(LMP_BLST_SEM_DELAY)) != RTA_SUCCESS)
        return LMP_BLST_INUSEERR;

    URT_FlushReadFIFO(LMP_BLST_PortNum); /* Discard any spurious data */

    /* Waveform Programming Mailbox */
    write_buffer[0] = 0x73;
    write_buffer[1] = Data;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆成人免费电影| 亚洲成人免费在线观看| 在线不卡a资源高清| 欧美亚洲国产bt| 色美美综合视频| 欧美视频在线一区二区三区| 欧美在线综合视频| 欧美日韩亚洲综合在线 欧美亚洲特黄一级 | 色婷婷久久久亚洲一区二区三区| 成人一区在线看| 色综合中文字幕国产 | 一区二区不卡在线视频 午夜欧美不卡在| 成人欧美一区二区三区| 中文字幕在线观看不卡| 亚洲久草在线视频| 午夜精品久久久久久久99樱桃| 丝袜美腿亚洲一区二区图片| 久久精品999| av在线一区二区| 欧美日韩国产高清一区| 精品日韩99亚洲| 国产精品久久久久毛片软件| 亚洲午夜羞羞片| 精品一区二区免费看| 成人av动漫在线| 制服丝袜中文字幕亚洲| 精品88久久久久88久久久| 中文字幕一区av| 蜜臀av国产精品久久久久| 国产91露脸合集magnet| 欧美性受xxxx| 中文在线一区二区 | 久久精品视频免费观看| 亚洲女同一区二区| 久久99精品久久久久婷婷| 成人激情校园春色| 欧美顶级少妇做爰| 国产精品伦一区二区三级视频| 午夜久久久影院| 99久久久久久| 亚洲精品在线观| 三级在线观看一区二区| 成人午夜私人影院| 欧美成人女星排行榜| 尤物av一区二区| 成人免费观看男女羞羞视频| 9191国产精品| 亚洲女女做受ⅹxx高潮| 国产成人一区二区精品非洲| 欧美亚洲高清一区| 一区在线播放视频| 国产精品一级片在线观看| 91精品一区二区三区久久久久久 | 91.com视频| 亚洲另类在线视频| 99久久久精品| 中文字幕不卡一区| 国产成人午夜高潮毛片| 日韩欧美国产麻豆| 日韩avvvv在线播放| 欧美午夜影院一区| 亚洲精品成人在线| 色婷婷激情综合| |精品福利一区二区三区| 成人性生交大片免费看在线播放| 欧美成人精品二区三区99精品| 五月天精品一区二区三区| 色婷婷精品大在线视频| 亚洲免费观看在线视频| 99久久精品国产导航| 国产精品福利一区| 成人高清视频在线| 国产精品进线69影院| 成人a免费在线看| 亚洲欧洲性图库| 色综合咪咪久久| 亚洲国产精品久久艾草纯爱| 色94色欧美sute亚洲线路二 | 欧美三级电影精品| 亚洲午夜成aⅴ人片| 欧美日韩视频在线第一区| 一区二区三区蜜桃| 制服.丝袜.亚洲.另类.中文| 亚洲福利电影网| 日韩欧美的一区| 国产盗摄女厕一区二区三区| 国产欧美日韩激情| 99精品在线观看视频| 亚洲综合在线视频| 91精品国产91久久久久久最新毛片| 亚洲mv在线观看| 精品国产三级电影在线观看| 国产99精品在线观看| 亚洲少妇最新在线视频| 欧美色精品天天在线观看视频| 无码av中文一区二区三区桃花岛| 欧美一区二区在线免费播放| 国产精品一区二区在线播放 | 国产亚洲欧洲一区高清在线观看| 国产精品自拍三区| 一区二区三区在线视频观看58 | 狠狠色狠狠色合久久伊人| 国产午夜精品一区二区三区四区 | 亚洲午夜精品在线| 日韩一区二区三区精品视频 | 在线免费观看成人短视频| 免费观看日韩电影| 国产精品丝袜一区| 欧美老年两性高潮| 国产98色在线|日韩| 亚洲一级不卡视频| 久久伊人中文字幕| 色丁香久综合在线久综合在线观看| 日本美女视频一区二区| 国产精品乱人伦中文| 91精品综合久久久久久| 99久久精品99国产精品| 日本午夜一区二区| 亚洲欧美一区二区三区久本道91| 欧美一区二区三区四区久久| 972aa.com艺术欧美| 国产呦精品一区二区三区网站| 亚洲网友自拍偷拍| 综合欧美一区二区三区| 久久九九久久九九| 欧美一区二区三区在线视频| 91精品91久久久中77777| 国产精品自在欧美一区| 热久久国产精品| 亚洲福中文字幕伊人影院| 一区精品在线播放| 国产女人18毛片水真多成人如厕 | 日韩精品一区二区三区视频| 成人免费观看av| 丁香婷婷综合网| 国产精品一区二区免费不卡| 视频一区二区欧美| 亚洲成人动漫在线观看| 自拍偷拍国产精品| 国产精品国产精品国产专区不蜜| 欧美精品一区二区三区蜜臀| 日韩欧美一级精品久久| 7777精品伊人久久久大香线蕉 | 日韩一区在线免费观看| 国产日产欧美一区| 国产三级精品三级| 久久久久久99精品| 久久夜色精品国产噜噜av| 精品精品欲导航| 亚洲精品一区二区三区蜜桃下载| 日韩欧美久久久| 精品日韩av一区二区| 精品国产一区二区三区不卡 | 青青草原综合久久大伊人精品优势 | 极品少妇一区二区| 久久精品久久久精品美女| 日本aⅴ亚洲精品中文乱码| 日韩电影在线观看电影| 免费观看一级特黄欧美大片| 青青草91视频| 国产精品影视在线观看| 国产宾馆实践打屁股91| 99久久国产综合精品色伊| 色综合久久久久久久久| 欧美三级电影在线看| 欧美变态凌虐bdsm| 欧美激情一区二区三区四区| 欧美国产在线观看| 一区二区三区精品久久久| 日韩黄色一级片| 韩国成人在线视频| 9i看片成人免费高清| 欧美日韩免费观看一区二区三区| 欧美肥妇毛茸茸| 欧美激情资源网| 亚洲国产精品一区二区久久恐怖片 | 99精品欧美一区二区蜜桃免费 | 老鸭窝一区二区久久精品| 国产精品一二二区| 在线免费观看日韩欧美| 日韩视频免费观看高清完整版在线观看 | 99re视频这里只有精品| 欧美日韩精品福利| 久久久久久久久久久久久夜| 中文字幕日韩精品一区| 美女国产一区二区三区| 不卡av电影在线播放| 欧美精品xxxxbbbb| 中文字幕欧美国产| 午夜精品免费在线| 成人a区在线观看| 日韩一区二区三区免费看 | 国产精品77777| 欧美色精品在线视频| 国产欧美日韩在线| 蜜臀av一区二区| 欧美日韩精品一区二区天天拍小说| 久久久精品国产免大香伊| 亚洲超碰97人人做人人爱| 波多野结衣中文字幕一区二区三区|