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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 34

?? 電腦鼠走迷宮程序
??
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
/****************************************Copyright (c)****************************************************
**                               Guangzhou ZHIYUAN electronics Co.,LTD.
**                                     
**                                 http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File Name:           Mouse_Drive.c
** Last modified Date: 
** Last Version: 
** Description:         電腦鼠底層驅(qū)動(dòng)
** 
**--------------------------------------------------------------------------------------------------------
** Created By: 
** Created date: 
** Version: 
** Descriptions: 
**
**--------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Description:
**
*********************************************************************************************************/


/*********************************************************************************************************
  包含頭文件
*********************************************************************************************************/
#include "Mouse_Drive.h"


/*********************************************************************************************************
  定義全局變量
*********************************************************************************************************/
MAZECOOR          GmcMouse                        = {0,0};              /*  保存電腦鼠當(dāng)前位置坐標(biāo)      */

uint8             GucMouseDir                     = UP;                 /*  保存電腦鼠當(dāng)前方向          */

uint8             GucMapBlock[MAZETYPE][MAZETYPE] = {0};                /*  GucMapBlock[x][y]           */
                                                                        /*  x,橫坐標(biāo);y,縱坐標(biāo);          */
                                                                        /*  bit3~bit0分別代表左下右上   */
                                                                        /*  0:該方向無(wú)路,1:該方向有路  */

static __MOTOR  __GmLeft                          = {0, 0, 0, 0, 0};    /*  定義并初始化左電機(jī)狀態(tài)      */
static __MOTOR  __GmRight                         = {0, 0, 0, 0, 0};    /*  定義并初始化右電機(jī)狀態(tài)      */

static uint8    __GucMouseState                   = __STOP;             /*  保存電腦鼠當(dāng)前運(yùn)行狀態(tài)      */
static uint32   __GuiAccelTable[400]              = {0};                /*  電機(jī)加減速各階段定時(shí)器值    */
static int32    __GiMaxSpeed                      = SEARCHSPEED;        /*  保存允許運(yùn)行的最大速度      */
static uint8    __GucDistance[5]                  = {0};                /*  記錄傳感器狀態(tài)              */


/*********************************************************************************************************
** Function name:       __delay
** Descriptions:        延時(shí)函數(shù)
** input parameters:    uiD :延時(shí)參數(shù),值越大,延時(shí)越久
** output parameters:   無(wú)
** Returned value:      無(wú)
*********************************************************************************************************/
void __delay (uint32  uiD)
{
    for (; uiD; uiD--);
}


/*********************************************************************************************************
** Function name:       __rightMotorContr
** Descriptions:        右步進(jìn)電機(jī)驅(qū)動(dòng)時(shí)序
** input parameters:    無(wú)
** output parameters:   無(wú)
** Returned value:      無(wú)
*********************************************************************************************************/
void __rightMotorContr (void)
{
    static int8 cStep = 0;                                              /*  保存電機(jī)當(dāng)前位置            */
    
    switch (__GmRight.cDir) {

    case __MOTORGOAHEAD:                                                /*  向前步進(jìn)                    */
        cStep = (cStep + 1) % 8;
        break;

    case __MOTORGOBACK:                                                 /*  向后步進(jìn)                    */
        cStep = (cStep + 7) % 8;
        break;

    default:
        break;
    }
    
    switch (cStep) {

    case 0:                                                             /*  A2B2                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2);
        break;

    case 1:                                                             /*  B2                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRA1 | __PHRA2);
        break;

    case 2:                                                             /*  A1B2                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRA1 | __PHRA2 | __PHRB2);
        break;

    case 3:                                                             /*  A1                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRB2);
        break;

    case 4:                                                             /*  A1B1                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRA2 | __PHRB2);
        break;

    case 5:                                                             /*  B1                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRA2);
        break;

    case 6:                                                             /*  A2B1                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRA2 | __PHRB1 | __PHRB2);
        break;

    case 7:                                                             /*  A2                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHRA1 | __PHRA2 | __PHRB1 | __PHRB2,
                     __PHRB1 | __PHRB2);
        break;

    default:
        break;
    }
}


/*********************************************************************************************************
** Function name:       __leftMotorContr
** Descriptions:        左步進(jìn)電機(jī)驅(qū)動(dòng)時(shí)序
** input parameters:    __GmLeft.cDir :電機(jī)運(yùn)行方向
** output parameters:   無(wú)
** Returned value:      無(wú)
*********************************************************************************************************/
void __leftMotorContr (void)
{
    static int8 cStep = 0;                                              /*  保存電機(jī)當(dāng)前位置            */
    
    switch (__GmLeft.cDir) {
        
    case __MOTORGOAHEAD:                                                /*  向前步進(jìn)                    */
        cStep = (cStep + 1) % 8;
        break;
        
    case __MOTORGOBACK:                                                 /*  向后步進(jìn)                    */
        cStep = (cStep + 7) % 8;
        break;
        
    default:
        break;
    }
    
    switch (cStep) {

    case 0:                                                             /*  A2B2                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2);
        break;

    case 1:                                                             /*  B2                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLB1 | __PHLB2);
        break;

    case 2:                                                             /*  A1B2                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLA2 | __PHLB1 | __PHLB2);
        break;

    case 3:                                                             /*  A1                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLA2);
        break;

    case 4:                                                             /*  A1B1                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLA2 | __PHLB2);
        break;

    case 5:                                                             /*  B1                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLB2);
        break;

    case 6:                                                             /*  A2B1                        */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLA1 | __PHLA2 | __PHLB2);
        break;

    case 7:                                                             /*  A2                          */
        GPIOPinWrite(GPIO_PORTD_BASE,
                     __PHLA1 | __PHLA2 | __PHLB1 | __PHLB2,
                     __PHLA1 | __PHLA2);
        break;

    default:
        break;
    }
}


/*********************************************************************************************************
** Function name:       __speedContrR
** Descriptions:        右電機(jī)速度調(diào)節(jié)
** input parameters:    無(wú)
** output parameters:   無(wú)
** Returned value:      無(wú)
*********************************************************************************************************/
void __speedContrR (void)
{
    int32 iDPusle;
    
    iDPusle = __GmRight.uiPulse - __GmRight.uiPulseCtr;                 /*  統(tǒng)計(jì)電機(jī)還剩余的步數(shù)        */
    if (iDPusle <= __GmRight.iSpeed) {
        __GmRight.iSpeed--;
    } else {                                                            /*  非減速區(qū)間,則加速到最大值  */
        if (__GmRight.iSpeed < __GiMaxSpeed) {
            __GmRight.iSpeed++;
        } else {
            __GmRight.iSpeed--;
        }
    }
    if (__GmRight.iSpeed < 0) {                                         /*  設(shè)置速度下限                */
        __GmRight.iSpeed = 0;
    }
    TimerLoadSet(TIMER0_BASE,TIMER_A,__GuiAccelTable[__GmRight.iSpeed]);/*  設(shè)置定時(shí)時(shí)間                */
}


/*********************************************************************************************************
** Function name:       __speedContrL
** Descriptions:        左電機(jī)速度調(diào)節(jié)
** input parameters:    無(wú)
** output parameters:   無(wú)
** Returned value:      無(wú)
*********************************************************************************************************/
void __speedContrL (void)
{
    int32 iDPusle;
    
    iDPusle = __GmLeft.uiPulse - __GmLeft.uiPulseCtr;                   /*  統(tǒng)計(jì)電機(jī)還剩余的步數(shù)        */
    if (iDPusle <= __GmLeft.iSpeed) {
        __GmLeft.iSpeed--;
    } else {                                                            /*  非減速區(qū)間,則加速到最大值  */
        if (__GmLeft.iSpeed < __GiMaxSpeed) {
            __GmLeft.iSpeed++;
        }
    }
    if (__GmLeft.iSpeed < 0) {                                          /*  設(shè)置速度下限                */
        __GmLeft.iSpeed = 0;
    }
    TimerLoadSet(TIMER1_BASE,TIMER_A,__GuiAccelTable[__GmLeft.iSpeed]); /*  設(shè)置定時(shí)時(shí)間                */
}


/*********************************************************************************************************
** Function name:       Timer0A_ISR
** Descriptions:        Timer0中斷服務(wù)函數(shù)
** input parameters:    無(wú)
** output parameters:   無(wú)
** Returned value:      無(wú)
*********************************************************************************************************/
void Timer0A_ISR(void)
{
    static int8 n = 0,m = 0;
    
    TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);                     /*  清除定時(shí)器0中斷。           */
    switch (__GmRight.cState) {
        
    case __MOTORSTOP:                                                   /*  停止,同時(shí)清零速度和脈沖值  */
        __GmRight.iSpeed     = 0;
        __GmRight.uiPulse    = 0;
        __GmRight.uiPulseCtr = 0;
        break;

    case __WAITONESTEP:                                                 /*  暫停一步                    */
        __GmRight.cState     = __MOTORRUN;
        break;

    case __MOTORRUN:                                                    /*  電機(jī)運(yùn)行                    */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品一区二区尤物区| 欧美日韩成人综合在线一区二区| 蜜桃视频在线一区| 亚洲线精品一区二区三区八戒| 亚洲欧洲精品成人久久奇米网| 国产精品毛片大码女人| 国产精品五月天| 国产精品久久久久精k8| 国产精品大尺度| 亚洲激情图片小说视频| 一二三四社区欧美黄| 亚洲自拍与偷拍| 亚洲bt欧美bt精品| 日韩av高清在线观看| 美日韩黄色大片| 国产永久精品大片wwwapp| 国内精品第一页| 成人性生交大片免费| 不卡的av网站| 日本韩国视频一区二区| 欧美亚洲动漫制服丝袜| 91精品综合久久久久久| 宅男在线国产精品| 欧美精品一区二区三区久久久| 高清av一区二区| 91色视频在线| 666欧美在线视频| 亚洲精品在线观看视频| 中文乱码免费一区二区 | 亚洲视频一区在线观看| 亚洲卡通动漫在线| 五月激情综合色| 极品少妇一区二区| 国模大尺度一区二区三区| 成人综合激情网| 欧美日韩在线免费视频| 日韩欧美一级二级三级久久久| 国产午夜亚洲精品不卡| 亚洲欧美韩国综合色| 奇米在线7777在线精品| 懂色中文一区二区在线播放| 欧美在线小视频| 精品乱人伦一区二区三区| ㊣最新国产の精品bt伙计久久| 亚洲不卡一区二区三区| 国产精品18久久久久久久久久久久| 91碰在线视频| 在线播放/欧美激情| 久久免费午夜影院| 一区二区三区欧美| 久久国产精品99精品国产 | 91精品国产麻豆国产自产在线| 久久综合国产精品| 一区二区激情小说| 国产精品 日产精品 欧美精品| 91国偷自产一区二区使用方法| 精品美女在线播放| 欧美a级理论片| 婷婷成人激情在线网| 国产99久久久久久免费看农村| 欧美视频一区二区在线观看| 欧美激情在线一区二区| 日韩精品亚洲专区| 99久久久免费精品国产一区二区| 91精品国产入口在线| 亚洲欧美日韩一区| 国产精品综合二区| 678五月天丁香亚洲综合网| 亚洲蜜桃精久久久久久久| 精品一区二区免费| 欧美日韩精品欧美日韩精品| 国产精品国产三级国产普通话蜜臀| 日本特黄久久久高潮| 欧美在线观看视频一区二区| 国产精品素人视频| 国产一区二区三区久久久| 欧美日韩国产免费| 伊人开心综合网| 成人av高清在线| 国产欧美精品日韩区二区麻豆天美| 天天综合色天天| 欧美亚洲自拍偷拍| 自拍偷在线精品自拍偷无码专区| 国产精品1区二区.| 26uuu久久天堂性欧美| 日本中文字幕一区二区视频 | 久草在线在线精品观看| 欧美三区在线观看| 玉米视频成人免费看| 欧美色综合网站| 欧美性感一类影片在线播放| 中文字幕亚洲一区二区av在线| 国产伦精一区二区三区| 精品少妇一区二区三区 | 欧美性猛片aaaaaaa做受| 中文字幕在线免费不卡| 成人免费视频一区| 久久久蜜桃精品| 国产一区亚洲一区| 精品国产人成亚洲区| 麻豆精品新av中文字幕| 日韩女优电影在线观看| 日本欧洲一区二区| 日韩午夜中文字幕| 久色婷婷小香蕉久久| 欧美大尺度电影在线| 日韩电影免费一区| 欧美一级黄色大片| 美脚の诱脚舐め脚责91| 337p亚洲精品色噜噜噜| 蜜臀av一区二区| 日韩精品一区二区三区蜜臀 | 日韩欧美在线网站| 蜜臀精品一区二区三区在线观看 | 91在线免费视频观看| 亚洲色图19p| 91麻豆高清视频| 一区二区三区美女视频| 欧美精品1区2区| 一区二区三区在线观看动漫| 欧美视频中文一区二区三区在线观看| 亚洲欧美日韩国产手机在线| 日本精品视频一区二区| 午夜精品福利视频网站| 制服丝袜成人动漫| 狠狠色丁香婷综合久久| 国产精品网站在线| 成人美女视频在线观看18| 亚洲丝袜另类动漫二区| 91麻豆自制传媒国产之光| 亚洲一区二区在线观看视频| 欧美另类videos死尸| 精品无码三级在线观看视频 | 亚洲国产欧美在线人成| 在线91免费看| 国内偷窥港台综合视频在线播放| 久久蜜桃av一区二区天堂| 成人精品gif动图一区| 一区二区三区高清不卡| 欧美精品自拍偷拍| 另类中文字幕网| 国产精品久久久久久久岛一牛影视 | 欧美午夜宅男影院| 日韩成人精品视频| 国产精品私人影院| 欧美嫩在线观看| 国产精品18久久久久久久久久久久 | 日韩视频免费直播| 粉嫩13p一区二区三区| 亚洲福利视频一区二区| 久久先锋影音av| 91国偷自产一区二区使用方法| 精品一区在线看| 亚洲激情校园春色| 久久综合久久综合亚洲| 欧美中文字幕久久| 国产高清精品网站| 亚洲一区二区三区四区不卡| 久久久久久久综合狠狠综合| 在线日韩一区二区| 国内精品视频一区二区三区八戒| 亚洲天堂精品视频| 精品成人a区在线观看| 在线视频亚洲一区| 国产精品一区二区黑丝| 亚洲综合免费观看高清完整版在线| 日韩午夜激情视频| 日本高清无吗v一区| 国产又黄又大久久| 五月天网站亚洲| 亚洲免费伊人电影| 久久久久久一级片| 91精品欧美一区二区三区综合在| av在线播放不卡| 国产麻豆精品95视频| 偷偷要91色婷婷| 亚洲欧美日韩精品久久久久| 欧美国产综合一区二区| 日韩精品一区二区三区中文不卡| 色94色欧美sute亚洲线路二| 国产ts人妖一区二区| 日韩不卡一区二区| 亚洲福利视频一区二区| 亚洲免费观看高清完整版在线观看熊 | 亚洲一区二区四区蜜桃| 国产欧美日本一区视频| 日韩亚洲欧美成人一区| 欧美无砖专区一中文字| 色呦呦一区二区三区| 从欧美一区二区三区| 精品一区二区久久| 日韩经典中文字幕一区| 亚洲第一搞黄网站| 亚洲免费大片在线观看| 中文字幕在线观看不卡| 日本一区二区三区在线观看| 久久久精品2019中文字幕之3| 精品免费视频一区二区| 欧美精品一区二| 精品sm捆绑视频|