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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? 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 );

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品免费在线观看| 欧美精品九九99久久| 日韩欧美国产三级| 亚洲电影一区二区| 在线视频一区二区三| 亚洲欧洲www| av中文字幕不卡| 中文幕一区二区三区久久蜜桃| 极品少妇一区二区| 久久免费偷拍视频| 国产美女视频91| 国产午夜精品一区二区三区嫩草 | 99久久国产综合精品麻豆| 久久婷婷国产综合精品青草| 久久电影国产免费久久电影| 日韩女优电影在线观看| 久久精品99国产精品日本| 日韩精品一区二区在线| 久久99最新地址| 久久久噜噜噜久久中文字幕色伊伊| 久久精品99国产精品日本| 久久麻豆一区二区| 国产一区二区免费视频| 国产日韩欧美在线一区| 懂色av噜噜一区二区三区av| 中文字幕亚洲一区二区va在线| gogogo免费视频观看亚洲一| 亚洲精品视频在线看| 在线观看91视频| 亚洲天堂精品在线观看| 欧美午夜片在线看| 免费成人结看片| 日本一区二区在线不卡| 日本道色综合久久| 图片区日韩欧美亚洲| 欧美精品一区二| 成人h动漫精品| 亚洲国产成人av好男人在线观看| 国产色婷婷亚洲99精品小说| av午夜一区麻豆| 一区二区三区四区国产精品| 欧美日韩视频专区在线播放| 狠狠狠色丁香婷婷综合久久五月| 中文成人综合网| 欧美日韩国产精选| 激情六月婷婷久久| 国产精品国产三级国产aⅴ入口| jlzzjlzz亚洲日本少妇| 视频一区二区三区入口| 国产日韩欧美精品电影三级在线 | 国产毛片精品国产一区二区三区| 国产精品另类一区| 欧美日韩中文字幕精品| 精品一区二区影视| 亚洲欧美国产三级| 日韩欧美一二三四区| 色综合激情五月| 久久99国产精品免费网站| 国产精品亲子乱子伦xxxx裸| 欧美片网站yy| 99久久久免费精品国产一区二区| 亚洲va韩国va欧美va精品| 国产午夜亚洲精品理论片色戒| 欧美日韩在线一区二区| 成人夜色视频网站在线观看| 日韩avvvv在线播放| 亚洲视频在线一区| 精品国产乱码久久久久久1区2区 | 国产精品白丝av| 亚洲高清久久久| 一区免费观看视频| 久久久久久久久久久电影| 欧美日韩激情一区二区三区| 99国产精品视频免费观看| 久久99精品久久久| 亚洲图片欧美视频| 国产精品国模大尺度视频| 欧美精品一区二| 91国偷自产一区二区三区成为亚洲经典 | 中文字幕制服丝袜成人av| 日韩欧美视频一区| 欧美午夜精品一区二区三区 | 国产精品欧美久久久久无广告| 国产精品看片你懂得| 国产色一区二区| 精品国产髙清在线看国产毛片 | 国产在线视频精品一区| 日韩黄色一级片| 亚洲午夜久久久久久久久电影院 | 蜜臀av性久久久久av蜜臀妖精| 亚洲欧美日韩一区二区 | 成人开心网精品视频| 国产一本一道久久香蕉| 日本视频免费一区| 日韩高清不卡在线| 婷婷亚洲久悠悠色悠在线播放| 亚洲一区中文日韩| 亚洲九九爱视频| 亚洲裸体在线观看| 中文字幕中文字幕在线一区 | 视频一区视频二区中文字幕| 亚洲国产精品久久艾草纯爱| 亚洲自拍另类综合| 亚洲成人综合视频| 亚洲国产成人av网| 男男成人高潮片免费网站| 青青草一区二区三区| 性久久久久久久久| 天天射综合影视| 美美哒免费高清在线观看视频一区二区 | 亚洲精品成人a在线观看| 一区二区三区日韩欧美精品| 一区免费观看视频| 亚洲主播在线观看| 日日欢夜夜爽一区| 蜜臀av性久久久久蜜臀aⅴ | 亚洲国产经典视频| 亚洲品质自拍视频| 午夜欧美电影在线观看| 麻豆91小视频| 国产91露脸合集magnet| 91在线观看视频| 欧美日韩国产乱码电影| 欧美成人aa大片| 国产精品久久久久一区| 视频一区二区三区在线| 成人高清在线视频| 91精品国产综合久久久久久漫画 | 在线播放中文字幕一区| 欧美激情艳妇裸体舞| 日韩av中文字幕一区二区| 丁香网亚洲国际| 日韩视频一区在线观看| 亚洲欧美激情一区二区| 国产在线精品视频| 欧美日韩一区在线| 国产精品沙发午睡系列990531| 日韩精品一二区| 欧亚一区二区三区| 国产精品美女视频| 激情综合色丁香一区二区| 欧美影视一区在线| 日韩美女视频19| 国产成人亚洲综合色影视| 欧美放荡的少妇| 亚洲综合丁香婷婷六月香| 99热精品一区二区| 国产人妖乱国产精品人妖| 久久精品国产在热久久| 欧美视频一二三区| 一区二区三区欧美视频| 成人网在线免费视频| 精品国产乱码久久久久久蜜臀| 天堂一区二区在线免费观看| 色激情天天射综合网| 国产精品卡一卡二| 国产不卡在线播放| 久久无码av三级| 久久99国产精品免费网站| 欧美一区二区三区小说| 天堂蜜桃91精品| 欧美欧美午夜aⅴ在线观看| 亚洲国产综合视频在线观看| 91精彩视频在线观看| 亚洲欧美另类图片小说| 99免费精品视频| 综合久久国产九一剧情麻豆| 99久久精品国产一区二区三区| 国产精品污污网站在线观看| 国产高清成人在线| 国产午夜亚洲精品理论片色戒| 国产一区二区三区在线看麻豆| 精品卡一卡二卡三卡四在线| 国产资源在线一区| 国产日韩欧美不卡在线| 大胆亚洲人体视频| 亚洲欧美怡红院| 一本色道久久综合精品竹菊| 亚洲一区中文在线| 91精品国产一区二区三区香蕉| 麻豆极品一区二区三区| 精品成人免费观看| 成人久久18免费网站麻豆| 亚洲你懂的在线视频| 欧美图片一区二区三区| 日本亚洲最大的色成网站www| 日韩欧美www| 国产a久久麻豆| 亚洲免费伊人电影| 精品视频一区三区九区| 男人的天堂亚洲一区| 久久精品欧美一区二区三区麻豆| 成人av在线一区二区三区| 亚洲自拍偷拍麻豆| 日韩女优制服丝袜电影| voyeur盗摄精品| 日韩av中文字幕一区二区| 国产调教视频一区| 在线观看一区不卡| 九一久久久久久|