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

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

?? cfg.c

?? uC_OS_II_外圍接口程序源代碼.rar
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*$PAGE*/
/*
*********************************************************************************************************
*                                        CLOCK/CALENDAR MODULE
*********************************************************************************************************
*/

#if MODULE_CLK
#endif

/*
*********************************************************************************************************
*                                             TIMER MANAGER
*********************************************************************************************************
*/

#if MODULE_TMR
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                          DISCRETE I/O MODULE
*                                        INITIALIZE PHYSICAL I/Os
*
* Description : This function is by DIOInit() to initialze the physical I/O used by the DIO driver.
* Arguments   : None.
* Returns     : None.
* Notes       : The physical I/O is assumed to be an 82C55A chip initialized as follows:
*                   Port A = OUT  (Discrete outputs)   (Address 0x0300)
*                   Port B = IN   (Discrete inputs)    (Address 0x0301)
*                   Port C = OUT  (not used)           (Address 0x0302)
*                   Control Word                       (Address 0x0303)
*               Refer to the Intel 82C55A data sheet.
*********************************************************************************************************
*/

#if  MODULE_DIO
void  DIOInitIO (void)
{
    outp(0x0303, 0x82);                          /* Port A = OUT, Port B = IN, Port C = OUT            */
}

/*
*********************************************************************************************************
*                                           DISCRETE I/O MODULE
*                                           READ PHYSICAL INPUTS
*
* Description : This function is called to read and map all of the physical inputs used for discrete
*               inputs and map these inputs to their appropriate discrete input data structure.
* Arguments   : None.
* Returns     : None.
*********************************************************************************************************
*/

void  DIRd (void)
{
    DIO_DI *pdi;
    INT8U   i;
    INT8U   in;
    INT8U   msk;


    pdi = &DITbl[0];                                       /* Point at beginning of discrete inputs    */
    msk = 0x01;                                            /* Set mask to extract bit 0                */
    in  = inp(0x0301);                                     /* Read the physical port (8 bits)          */
    for (i = 0; i < 8; i++) {                              /* Map all 8 bits to first 8 DI channels    */
        pdi->DIIn   = (BOOLEAN)(in & msk) ? 1 : 0;
        msk       <<= 1;
        pdi++;
    }
}

/*
*********************************************************************************************************
*                                           DISCRETE I/O MODULE
*                                         UPDATE PHYSICAL OUTPUTS
*
* Description : This function is called to map all of the discrete output channels to their appropriate
*               physical destinations.
* Arguments   : None.
* Returns     : None.
*********************************************************************************************************
*/

void  DOWr (void)
{
    DIO_DO *pdo;
    INT8U   i;
    INT8U   out;
    INT8U   msk;


    pdo = &DOTbl[0];                        /* Point at first discrete output channel                  */
    msk = 0x01;                             /* First DO will be mapped to bit 0                        */
    out = 0x00;                             /* Local 8 bit port image                                  */
    for (i = 0; i < 8; i++) {               /* Map first 8 DOs to 8 bit port image                     */
        if (pdo->DOOut == TRUE) {
            out |= msk;
        }
        msk <<= 1;
        pdo++;
    }
    outp(0x0300, out);                      /* Output port image to physical port                      */
}
#endif

/*$PAGE*/
/*
*********************************************************************************************************
*                                          ANALOG I/O MODULE
*                                       INITIALIZE PHYSICAL I/Os
*
* Description : This function is called by AIOInit() to initialize the physical I/O used by the AIO
*               driver.
* Arguments   : None.
* Returns     : None.
*********************************************************************************************************
*/

#if  MODULE_AIO
void  AIOInitIO (void)
{
    /* This is where you will need to put you initialization code for the ADCs and DACs                */
    /* You should also consider initializing the contents of your DAC(s) to a known value.             */
    
    AITestCnts = 0;
}

/*
*********************************************************************************************************
*                                           ANALOG I/O MODULE
*                                          READ PHYSICAL INPUTS
*
* Description : This function is called to read a physical ADC channel.  The function is assumed to
*               also control a multiplexer if more than one analog input is connected to the ADC.
* Arguments   : ch     is the ADC logical channel number (0..AIO_MAX_AI-1).
* Returns     : The raw ADC counts from the physical device.
*********************************************************************************************************
*/

INT16S  AIRd (INT8U ch)
{
    /* This is where you will need to provide the code to read your ADC(s).                            */
    /* AIRd() is passed a 'LOGICAL' channel number.  You will have to convert this logical channel     */
    /* number into actual physical port locations (or addresses) where your MUX. and ADCs are located. */
    /* AIRd() is responsible for:                                                                      */
    /*     1) Selecting the proper MUX. channel,                                                       */
    /*     2) Waiting for the MUX. to stabilize,                                                       */
    /*     3) Starting the ADC,                                                                        */
    /*     4) Waiting for the ADC to complete its conversion,                                          */
    /*     5) Reading the counts from the ADC and,                                                     */
    /*     6) Returning the counts to the calling function.                                            */

                                       /* Simulate a RAMPING voltage                                   */
    AITestCnts += 10;                  /* Always assume ADC returns a signed 16-bit count              */
    if (AITestCnts > 28670) {          /* Max. counts for LM34A at 300 F, with gain of 2.5             */
        AITestCnts = 0;
    }
    return (AITestCnts);
}

/*$PAGE*/
/*
*********************************************************************************************************
*                                           ANALOG I/O MODULE
*                                        UPDATE PHYSICAL OUTPUTS
*
* Description : This function is called to write the 'raw' counts to the proper analog output device
*               (i.e. DAC).  It is up to this function to direct the DAC counts to the proper DAC if more
*               than one DAC is used.
* Arguments   : ch     is  the DAC logical channel number (0..AIO_MAX_AO-1).
*               cnts   are the DAC counts to write to the DAC
* Returns     : None.
*********************************************************************************************************
*/

void  AOWr (INT8U ch, INT16S cnts)
{
    ch   = ch;
    cnts = cnts;

    /* This is where you will need to provide the code to update your DAC(s).                          */
    /* AOWr() is passed a 'LOGICAL' channel number.  You will have to convert this logical channel     */
    /* number into actual physical port locations (or addresses) where your DACs are located.          */
    /* AOWr() is responsible for writing the counts to the selected DAC based on a logical number.     */
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久亚洲综合| 欧美成人官网二区| 另类小说欧美激情| 亚洲婷婷在线视频| 精品久久久久久久一区二区蜜臀| 色综合久久综合网97色综合| 国产一区二区三区免费观看| 亚洲一区二区三区中文字幕| 国产欧美一区二区在线观看| 日韩欧美一二三区| 欧美日韩一区在线观看| 成人自拍视频在线观看| 美腿丝袜亚洲三区| 午夜精品123| 亚洲蜜桃精久久久久久久| 国产日韩欧美精品电影三级在线| 91精品国产综合久久精品app | 亚洲一区二区五区| 中文字幕av在线一区二区三区| 91精品欧美一区二区三区综合在| 色呦呦国产精品| av中文字幕亚洲| 国产成人免费xxxxxxxx| 国产麻豆欧美日韩一区| 日本欧美在线观看| 亚洲成av人片在线观看无码| 一区二区三区在线免费| 亚洲三级在线免费| 日韩一区在线看| 国产精品入口麻豆原神| 欧美国产丝袜视频| 久久伊99综合婷婷久久伊| 日韩欧美一二三四区| 欧美一卡在线观看| 日韩欧美中文字幕一区| 日韩一区二区精品在线观看| 欧美美女网站色| 在线成人免费视频| 日韩视频免费观看高清在线视频| 欧美精品粉嫩高潮一区二区| 欧美日韩国产小视频在线观看| 欧美在线一二三| 欧美综合一区二区三区| 欧美色国产精品| 欧美丰满高潮xxxx喷水动漫| 欧美精品aⅴ在线视频| 91精品国产91久久久久久最新毛片| 7777女厕盗摄久久久| 欧美欧美欧美欧美| 欧美成va人片在线观看| 久久久久久毛片| 国产精品免费免费| 亚洲女同ⅹxx女同tv| 亚洲午夜在线视频| 日韩和欧美的一区| 国精品**一区二区三区在线蜜桃| 国产精品99久久久久久久vr| 成人黄色一级视频| 91激情在线视频| 在线电影欧美成精品| 久久综合九色综合久久久精品综合| 久久久久久久综合狠狠综合| 一色屋精品亚洲香蕉网站| 亚洲国产综合91精品麻豆| 青娱乐精品视频在线| 国产一区二区在线电影| 处破女av一区二区| 欧美日韩一区二区在线观看| 欧美xxxxxxxxx| 国产精品二三区| 日韩黄色在线观看| 成人免费观看av| 色婷婷亚洲一区二区三区| 在线不卡中文字幕播放| 日本一区二区三区高清不卡| 亚洲一区视频在线观看视频| 麻豆久久久久久久| 色狠狠av一区二区三区| 日韩亚洲欧美在线观看| 国产精品久久久久久一区二区三区 | 成人午夜电影网站| 欧美三级资源在线| 久久精品网站免费观看| 亚洲一区在线播放| 国产美女主播视频一区| 欧美性大战xxxxx久久久| 精品久久久久久综合日本欧美| 亚洲欧美视频一区| 国产另类ts人妖一区二区| 色av一区二区| 国产欧美综合色| 日韩电影在线观看电影| eeuss鲁片一区二区三区| 欧美一区二区三区成人| 亚洲视频网在线直播| 国产乱子伦视频一区二区三区| 欧美色中文字幕| 国产精品久久久久久久久免费桃花| 奇米一区二区三区av| 色综合久久综合| 中文字幕成人在线观看| 免费在线观看一区| 欧美主播一区二区三区美女| 国产欧美一区二区三区鸳鸯浴| 日韩精品一级二级| 在线一区二区视频| 国产精品乱码一区二三区小蝌蚪| 美女性感视频久久| 欧美性色黄大片手机版| 亚洲日本成人在线观看| 国产电影一区二区三区| 日韩欧美亚洲国产另类| 午夜天堂影视香蕉久久| 色婷婷综合久久久| 综合中文字幕亚洲| 成人免费视频播放| 久久久久国产精品麻豆| 免费在线观看一区二区三区| 欧美美女直播网站| 亚洲色大成网站www久久九九| 成人午夜伦理影院| 中文字幕免费在线观看视频一区| 久久国产人妖系列| 日韩午夜精品电影| 蜜桃视频一区二区| 欧美一级黄色片| 日韩中文字幕不卡| 欧美疯狂做受xxxx富婆| 亚洲高清免费观看| 欧美另类变人与禽xxxxx| 亚洲午夜一二三区视频| 欧美图区在线视频| 亚洲大片一区二区三区| 在线播放欧美女士性生活| 亚洲大型综合色站| 欧美一区二区三区在线电影| 天天综合天天做天天综合| 56国语精品自产拍在线观看| 亚洲成人动漫精品| 这里只有精品免费| 美女视频网站久久| 欧美一区二区在线不卡| 麻豆91免费看| 国产亚洲成年网址在线观看| 国产精品一区二区三区网站| 国产欧美一区二区精品仙草咪| 国产福利精品导航| 国产精品久久久久久一区二区三区| av一区二区三区在线| 一区二区激情小说| 欧美日本一区二区在线观看| 免费看欧美女人艹b| 久久久久久免费| a级高清视频欧美日韩| 亚洲夂夂婷婷色拍ww47| 69久久99精品久久久久婷婷| 韩国女主播成人在线观看| 中文字幕欧美激情一区| 欧美探花视频资源| 久久国产综合精品| 国产精品午夜在线| 欧美视频在线一区| 麻豆精品在线观看| 国产精品人人做人人爽人人添| 在线观看不卡一区| 蜜臀av一区二区三区| 国产精品久久久久桃色tv| 欧美日韩国产精选| 国产一区激情在线| 一区二区三区在线免费播放| 日韩欧美综合一区| 91网站黄www| 免费日本视频一区| 日本一区二区在线不卡| 欧美丝袜丝交足nylons| 国产毛片一区二区| 亚洲国产精品人人做人人爽| xf在线a精品一区二区视频网站| 成人av电影免费观看| 日本午夜一本久久久综合| 中文字幕高清不卡| 欧美一区二区三区视频免费| 成人午夜视频福利| 三级欧美在线一区| 中文字幕日韩精品一区| 精品少妇一区二区三区在线视频 | 日韩一级在线观看| 91婷婷韩国欧美一区二区| 久草精品在线观看| 亚洲美女电影在线| 久久久电影一区二区三区| 欧美丝袜第三区| thepron国产精品| 视频一区国产视频| 一区二区三区四区视频精品免费 | 中文一区一区三区高中清不卡| 欧美日韩夫妻久久| 99国产精品久久久久久久久久久| 蜜臀精品久久久久久蜜臀| 亚洲综合色成人|