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

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

?? kit06.c

?? 瑞賽模型車比賽參考程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*======================================*/
/* Include declarations                 */
/*======================================*/
#include    <machine.h>
#include    "h8_3048.h"

/*======================================*/
/* Symbol definitions                   */
/*======================================*/

/* Constants */
#define         TIMER_CYCLE     3071    /* Timer cycle: 1 ms        */
                                        /* When  /8 is used,        */
                                        /*  /8 = 325.5 ns           */
                                        /* 亪TIMER_CYCLE =          */
                                        /*      1[ms] / 325.5[ns]   */
                                        /*               = 3072     */
#define         PWM_CYCLE       49151   /* PWM cycle: 16 ms         */
                                        /* 亪PWM_CYCLE =            */
                                        /*      16[ms] / 325.5[ns]  */
                                        /*               = 49152    */
#define         SERVO_CENTER    4730//4460//4560    /* Servo sensor value       */
#define         HANDLE_STEP     26      /* Value for 1              */

/* Mask value setting:  : Masked (disabled) O: Not masked (enabled) */
#define         MASK2_2         0x66    /*                          */
#define         MASK2_0         0x60    /*                          */
#define         MASK0_2         0x06    /*                          */
#define         MASK3_3         0xe7    /*                          */
#define         MASK0_3         0x07    /*                          */
#define         MASK3_0         0xe0    /*                          */
#define         MASK4_0         0xf0    /*                          */
#define         MASK0_4         0x0f    /*                          */
#define         MASK4_4         0xff    /*                          */

/*======================================*/
/* Prototype declarations               */
/*======================================*/
void init( void );
void timer( unsigned long timer_set );
int check_crossline( void );
int check_rightline( void );
int check_leftline( void );
unsigned char sensor_inp( unsigned char mask );
unsigned char dipsw_get( void );
unsigned char pushsw_get( void );
unsigned char startbar_get( void );
void led_out( unsigned char led );
void speed( int accele_l, int accele_r );
void handle( int angle );
char unsigned bit_change( char unsigned in );

/*======================================*/
/* Global variable declarations         */
/*======================================*/
unsigned long   cnt0;                   /* For the timer functions      */
unsigned long   cnt1;                   /* Used in main()               */
int             pattern;                /* Pattern number               */

/************************************************************************/
/* Main Program                                                         */
/************************************************************************/
void main( void )
{
    int     i;

    /* Microcontroller function initialization */
    init();                             /* Initialization               */
    set_ccr( 0x00 );                    /* Enable all interrupts        */

    /* Micom car state initialization */
    handle( 0 );
    speed( 0, 0 );

    while( 1 ) {
    switch( pattern ) {

    /*****************************************************************
    Notes on patterns
     0: Wait for switch input
     1: Check whether or not the start bar is open
    11: Normal trace
    12: Check for the end of a wide turn to right
    13: Check for the end of a wide turn to left
    21: Processing for when the first crossline is detected
    22: Read and jump over the second
    23: Detect a trace or sharp turn after a crossline
    31: Left sharp turn clear processing: Wait briefly until clear
    32: Left sharp turn clear processing: Check that the end of the turn has been reached
    41: Right sharp turn clear processing: Wait briefly until clear
    42: Right sharp turn clear processing: Check that the end of the turn has been reached
    51: Processing when the first right half-line has been detected
    52: Read and jump over the second
    53: Trace following a right half line
    54: Check that the right lane change has completed
    61: Processing when the first left half-line has been detected
    62: Read and jump over the second
    63: Trace following a left half line
    64: Check that the left lane change has completed
    *****************************************************************/

    case 0:
        /* Wait for switch input */
        if( pushsw_get() ) {
            pattern = 1;
            cnt1 = 0;
            break;
        }
        if( cnt1 < 100 ) {              /* Processing for LED blinking */
            led_out( 0x1 );
        } else if( cnt1 < 200 ) {
            led_out( 0x2 );
        } else {
            cnt1 = 0;
        }
        break;

    case 1:
        /* Check whether or not the start bar is open */
        if( !startbar_get() ) {
            /* Start!! */
            led_out( 0x0 );
            pattern = 11;
            cnt1 = 0;
            break;
        }
        if( cnt1 < 50 ) {              /* Processing for LED blinking */
            led_out( 0x1 );
        } else if( cnt1 < 100 ) {
            led_out( 0x2 );
        } else {
            cnt1 = 0;
        }
        break;

    case 11:
        /* Normal trace */
		if( check_crossline() ) {       /* Also check the crossline during large turns. */
            pattern = 21;
            break;
        }
        if( check_rightline() ) {       /* Right half line check    */
            pattern = 51;
            break;
        }
        if( check_leftline() ) {        /* Left half line check     */
            pattern = 61;
            break;
        }
        switch( sensor_inp(MASK3_3) ) {
            case 0x00:
                /* Center   straight */
                handle( 0 );
                speed(85 ,85 );
                break;

            case 0x04:
                /* Move slightly to the left   turn slightly to the right */
                handle( 8 );
                speed( 90 ,80 );
                break;

            case 0x06:
                /* Move somewhat to the left   turn somewhat to the right */
                handle( 15 );
                speed( 80 ,65 );
                break;

            case 0x07:
                /* Move a medium amount to the left   turn a medium amount to the right */
                handle( 20 );
                speed( 70 ,20 );
                break;

            case 0x03:
                /* Move significantly to the left   turn significantly to the right */
                handle( 28 );
                speed( 65 ,40 );
                pattern = 12;
                break;

            case 0x20:
                /* Move slightly to the right   turn slightly to the left */
                handle( -8 );
                speed( 80,90 );
                break;

            case 0x60:
                /* Move somewhat to the right   turn somewhat to the left */
                handle( -15 );
                speed( 65 ,80 );
                break;

            case 0xe0:
                /* Move a medium amount to the right   turn a medium amount to the left */
                handle( -20 );
                speed( 50 ,70 );
                break;

            case 0xc0:
                /* Move significantly to the right   turn significantly to the left */
                handle( -28 );
                speed( 40 ,65 );
                pattern = 13;
                break;

            default:
                break;
        }
        break;

    case 12:
        /* Check for completion of a large turn to the right. */
        if( check_crossline() ) {       /* Also check the crossline during large turns. */
            pattern = 21;
            break;
        }
        if( check_rightline() ) {       /* Check for right half line.   */
            pattern = 51;
            break;
        }
        if( check_leftline() ) {        /* Check for left half line.    */
            pattern = 61;
            break;
        }
        if( sensor_inp(MASK3_3) == 0x06 ) {
            pattern = 11;
        }
		switch( sensor_inp(MASK4_4) ) {
            case 0x04:
                /* Move slightly to the right   turn slightly to the left */
                handle( 16 );
                speed( 70 ,60 );
                break;

            case 0x07:
                /* Move a medium amount to the right   turn a medium amount to the left */
                handle(24 );
                speed( 65 ,45 );
                break;

            case 0x03:
                /* Move significantly to the right   turn significantly to the left */
                handle( 32 );
                speed( 60 ,40 );
                break;
			
			case 0x83:
			case 0x81:
				handle(36);
				speed(55,30);
				break;

			case 0xc1:
			case 0xc3:
				handle(40);
				speed(55,20);

            default:
                break;
        }

        break;

    case 13:
        /* Check for completion of a large turn to the left. */
        if( check_crossline() ) {       /* Also check the crossline during large turns. */
            pattern = 21;
            break;
        }
        if( check_rightline() ) {       /* Check for right half line.   */
            pattern = 51;
            break;
        }
        if( check_leftline() ) {        /* Check for left half line.    */
            pattern = 61;
            break;
        }
        if( sensor_inp(MASK3_3) == 0x60 ) {
            pattern = 11;
        }
		switch( sensor_inp(MASK4_4) ) {

            case 0x20:
                /* Move slightly to the left   turn slightly to the right */
                handle( -16 );
                speed( 60 ,70 );
                break;

            case 0xe0:
                /* Move a medium amount to the left   turn a medium amount to the right */
                handle( -24 );
                speed( 45 ,65 );
                break;

            case 0xc0:
                /* Move significantly to the left   turn significantly to the right */
                handle( -32 );
                speed( 40 ,60 );
                break;

			case 0xc1:
			case 0x81:
				handle(-36);
				speed(30,55);
				break;

			case 0x83:
			case 0xc3:
				handle(-40);
				speed(25,45);

            default:
                break;
        }
        break;

    case 21:
        /* Processing when the first crossline is detected */
        led_out( 0x3 );
        handle( 0 );
        speed( 0 ,0 );
        pattern = 22;
        cnt1 = 0;
        break;

    case 22:
        /* Read and ignore the second line. */
        if( cnt1 > 110 ) {
            pattern = 23;
            cnt1 = 0;
        }
        break;

    case 23:
        /* Detection of a trace, sharp turn after a crossline */
        if( sensor_inp(MASK4_4)==0xf8 || sensor_inp(MASK4_4)==0xf0 ) {
            /* If a left sharp turn recognized   proceed to left sharp turn clear processing */
            led_out( 0x1 );
            handle( -40 );			//handle( -38 );
            speed( 18,55);
            pattern = 31;
            cnt1 = 0;
            break;
        }
        if( sensor_inp(MASK4_4)==0x1f ||sensor_inp(MASK4_4)==0x0f ) {
            /* If a right sharp turn recognized   proceed to right sharp turn clear processing */
            led_out( 0x2 );
            handle( 40 );			//handle( 38 );
            speed(55 ,35 );
            pattern = 41;
            cnt1 = 0;
            break;
        }
        switch( sensor_inp(MASK3_3) ) {
            case 0x00:
                /* Center   straight */
                handle( 0 );
                speed( 40 ,40 );
                break;
            case 0x04:
            case 0x06:
            case 0x07:
            case 0x03:
                /* Move left   turn right */
                handle( 10 );		//handle( 8 );	
                speed( 40 ,30 );
                break;
            case 0x20:
            case 0x60:
            case 0xe0:
            case 0xc0:
                /* Move right   turn left */
                handle( -10 );		//handle( -8 );
                speed( 30 ,40 );
                break;
        }
        break;

    case 31:
        /* Left sharp turn clear processing - wait briefly until stable */
        if( cnt1 > 150 ) {
            pattern = 32;
            cnt1 = 0;
        }
        break;

    case 32:
        /* Left sharp turn clear processing - check for completion of the turn */
        if( sensor_inp(MASK3_3) == 0x60 || sensor_inp(MASK3_3) == 0x30 ) {
            led_out( 0x0 );
            pattern = 11;
            cnt1 = 0;
        }
        break;

    case 41:
        /* Right sharp turn clear processing - wait briefly until stable */
        if( cnt1 > 150 ) {
            pattern = 42;
            cnt1 = 0;
        }
        break;

    case 42:
        /* Right sharp turn clear processing - check for completion of the turn */
        if( sensor_inp(MASK3_3) == 0x06||sensor_inp(MASK3_3) == 0x0c ) {
            led_out( 0x0 );
            pattern = 11;
            cnt1 = 0;
        }
        break;

    case 51:
        /* Processing when the first right half line is detected */
		
		if( check_crossline() ) {       /* Also check the crossline during large turns. */
            pattern = 21;
            break;
        }
        led_out( 0x2 );
        handle( 0 );
        speed( 0 ,0 );
        pattern = 52;
        cnt1 = 0;
        break;

    case 52:
        /* Read and ignore the second line. */
		if( check_crossline() ) {       /* Also check the crossline during large turns. */
            pattern = 21;
            break;
        }
        if( cnt1 > 80 ) {
            pattern = 53;
            cnt1 = 0;
        }
        break;

    case 53:
        /* Trace, lane change after a right half line */
        if( sensor_inp(MASK4_4) == 0x00 ) {
            handle( 15 );
            speed( 40 ,20 );//speed( 50 ,35 );

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
懂色av中文字幕一区二区三区 | 亚洲色图丝袜美腿| 日韩午夜在线播放| 在线观看成人小视频| 色综合久久久久网| 波多野结衣中文字幕一区 | 国产日本亚洲高清| 国产亚洲一二三区| 亚洲国产精品精华液2区45| 国产喷白浆一区二区三区| 中文字幕高清不卡| 中文字幕乱码久久午夜不卡| 欧美国产一区视频在线观看| 中文在线一区二区| 樱桃国产成人精品视频| 丝袜亚洲另类欧美| 日韩中文字幕不卡| 久草热8精品视频在线观看| 国内精品免费**视频| 国产精品888| 成人深夜视频在线观看| 91首页免费视频| 欧美日韩亚洲综合一区二区三区| 欧美精品在线一区二区三区| 精品国产免费人成在线观看| 国产女同互慰高潮91漫画| 日韩美女视频一区| 日日夜夜精品视频免费| 韩国一区二区三区| 91首页免费视频| 69精品人人人人| 国产欧美日韩不卡免费| 亚洲综合色视频| 精品一区二区在线视频| 91老司机福利 在线| 56国语精品自产拍在线观看| 久久综合九色综合欧美就去吻| 国产精品毛片久久久久久久| 亚洲成av人片在www色猫咪| 韩国一区二区在线观看| 欧美性受xxxx| 国产色产综合产在线视频| 亚洲人成影院在线观看| 麻豆精品新av中文字幕| 成人av资源站| 精品国产乱码久久久久久久久| 国产精品久久久久一区| 成人国产一区二区三区精品| 欧美伊人久久久久久久久影院 | 久久久影视传媒| 亚洲精品大片www| 国产精品综合二区| 555www色欧美视频| 自拍偷拍国产精品| 国产剧情一区在线| 欧美一级片免费看| 亚洲国产cao| av在线播放成人| 久久精品亚洲精品国产欧美kt∨| 午夜不卡av免费| 色婷婷av一区二区三区之一色屋| 久久久久久久久97黄色工厂| 免费看精品久久片| 欧美日韩视频一区二区| 国产精品不卡在线| 国产盗摄一区二区| 久久精品人人做| 国产美女精品在线| 日韩欧美亚洲国产精品字幕久久久| 一区二区三区在线视频观看 | 亚洲一区二区综合| 91论坛在线播放| 日韩伦理免费电影| 欧美人狂配大交3d怪物一区| 亚洲一区精品在线| 欧洲视频一区二区| 亚洲一区二区三区在线播放| 色呦呦一区二区三区| 成人免费在线播放视频| 91在线国产观看| 亚洲三级在线免费观看| 99精品在线观看视频| 亚洲欧美日韩国产综合| 欧洲精品在线观看| 亚洲r级在线视频| 欧美精品色综合| 日本不卡123| 精品国产91乱码一区二区三区 | 精品1区2区在线观看| 精品在线亚洲视频| 国产人伦精品一区二区| 成人免费视频网站在线观看| 国产精品理论在线观看| 91在线视频网址| 亚洲香蕉伊在人在线观| 欧美日本高清视频在线观看| 免费看欧美女人艹b| 久久婷婷国产综合国色天香| 国产精品亚洲人在线观看| 国产精品国产三级国产普通话蜜臀| 不卡av在线免费观看| 亚洲国产精品视频| 精品免费国产一区二区三区四区| 国产成人午夜精品5599| 亚洲天堂免费看| 91精品国产欧美一区二区成人| 久久草av在线| 中文幕一区二区三区久久蜜桃| 91网页版在线| 麻豆成人久久精品二区三区红 | 蜜臀av一级做a爰片久久| 中文字幕 久热精品 视频在线| 91成人在线免费观看| 麻豆国产91在线播放| 国产精品国产a级| 欧美一区二区在线播放| 成人av资源站| 麻豆精品精品国产自在97香蕉 | 一区二区欧美国产| 精品国产污网站| 色综合天天综合在线视频| 日本不卡一区二区三区高清视频| 国产精品私人影院| 91精品国产综合久久久久| av电影在线不卡| 九色综合狠狠综合久久| 亚洲一区二区在线免费观看视频| 亚洲精品一区二区三区香蕉| 欧洲av一区二区嗯嗯嗯啊| 国产一区二区毛片| 免费成人在线播放| 一区二区三区毛片| 国产丝袜欧美中文另类| 51精品久久久久久久蜜臀| 99视频在线观看一区三区| 国产一区二区剧情av在线| 日产欧产美韩系列久久99| 一区二区三区**美女毛片| 国产精品欧美一区喷水| 91麻豆精品国产91久久久使用方法| 不卡一二三区首页| 国产xxx精品视频大全| 狠狠v欧美v日韩v亚洲ⅴ| 麻豆精品国产传媒mv男同| 五月天久久比比资源色| 亚洲国产欧美在线| 亚洲精品中文字幕在线观看| 国产精品福利在线播放| 国产欧美一区视频| 久久久久久黄色| 久久精品亚洲乱码伦伦中文 | k8久久久一区二区三区| 风流少妇一区二区| 国产成人aaa| 国产成人亚洲综合a∨婷婷图片| 精久久久久久久久久久| 国内久久精品视频| 国产精品18久久久久久久久 | 色综合婷婷久久| 91毛片在线观看| 日本久久一区二区三区| 色综合久久88色综合天天6| 一道本成人在线| 91看片淫黄大片一级在线观看| 不卡影院免费观看| 91福利视频在线| 欧美精品777| 精品久久国产97色综合| 久久久精品国产免费观看同学| 欧美精品一区二区三区蜜臀| 久久综合久色欧美综合狠狠| 国产欧美视频在线观看| 亚洲桃色在线一区| 偷拍亚洲欧洲综合| 捆绑调教一区二区三区| 成人午夜精品在线| 91网站在线播放| 欧美丰满高潮xxxx喷水动漫| 日韩精品中文字幕一区二区三区| 26uuuu精品一区二区| 中文字幕电影一区| 亚洲成人av一区| 国产精品一二三| 91国模大尺度私拍在线视频| 欧美日本一区二区在线观看| 欧美一区二区三区思思人 | 成人97人人超碰人人99| 在线看国产一区二区| 日韩精品一区国产麻豆| 国产精品高潮久久久久无| 视频在线观看一区二区三区| 国产一区二区美女| 欧美午夜电影在线播放| 久久精子c满五个校花| 亚洲午夜久久久久久久久久久| 久久99国产精品麻豆| 色婷婷久久99综合精品jk白丝| 欧美一级免费大片| 亚洲色图色小说| 国内精品国产成人|