智能车制作

标题: 有一段程序看不懂,谁来解释一下,谢谢 [打印本页]

作者: dengbin2010    时间: 2010-5-1 00:35
标题: 有一段程序看不懂,谁来解释一下,谢谢
这是一个智能寻迹车的源程序
我看不懂
帮忙把那些乱七八糟的汉字翻译出来

最好详细的解释一下
谢谢

/****************************************************************************/
/* 儅僀僐儞僇乕僩儗乕僗婎杮僾儘僌儔儉 "kit07_4wd.c"                         */
/*                          2008.05 僕儍僷儞儅僀僐儞僇乕儔儕乕幚峴埾堳夛    */
/****************************************************************************/
/*
偙偺僾儘僌儔儉偼丄"kit07.c"傪儀乕僗偵偟偰丄
儌乕僞僪儔僀僽婎斅(Vol.3)傪2枃巊梡偟丄4椫撈棫惂屼傪峴偆僾儘僌儔儉偱偡丅
僙儞僒婎斅偼Ver.4傪巊梡偟傑偡丅
*/

/*======================================*/
/* 僀儞僋儖乕僪                         */
/*======================================*/
#include    <machine.h>
#include    "h8_3048.h"

/*======================================*/
/* 僔儞儃儖掕媊                         */
/*======================================*/

/* 掕悢愝掕 */
#define         PWM_CYCLE       49151   /* PWM偺僒僀僋儖 16ms       */
                                        /* PWM_CYCLE =              */
                                        /*      16[ms] / 325.5[ns]  */
                                        /*               = 49152    */
#define         F_PWM_CYCLE     3071    /* 慜椫偺PWM僒僀僋儖 1ms    */
                                        /* F_PWM_CYCLE =            */
                                        /*      1[ms] / 325.5[ns]   */
                                        /*               = 3072     */
#define         SERVO_CENTER    5000    /* 僒乕儃偺僙儞僞抣         */
#define         HANDLE_STEP     26      /* 1並暘偺抣                */

/* 儅僗僋抣愝掕 亊丗儅僗僋偁傝(柍岠)丂仜丗儅僗僋柍偟(桳岠) */
#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    /* 仜仜仜仜仜仜仜仜         */

#define         speed_r(x,y)    speed(x,y)  /* speed  = speed_r     */
#define         speed2_r(x,y)   speed2(x,y) /* speed2 = speed2_r    */

/*======================================*/
/* 僾儘僩僞僀僾愰尵                     */
/*======================================*/
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 speed2( int accele_l, int accele_r );
void speed_f( int accele_l, int accele_r );
void speed2_f( int accele_l, int accele_r );
void handle( int angle );

/*======================================*/
/* 僌儘乕僶儖曄悢偺愰尵                 */
/*======================================*/
unsigned long   cnt0;                   /* timer娭悢梡              */
unsigned long   cnt1;                   /* main撪偱巊梡             */
int             pattern;                /* 僷僞乕儞斣崋             */

/************************************************************************/
/* 儊僀儞僾儘僌儔儉                                                     */
/************************************************************************/
void main( void )
{
    int     i;
    int     m1, m2, m3, m4;
    unsigned char c;

    /* 儅僀僐儞婡擻偺弶婜壔 */
    init();                             /* 弶婜壔                   */
    set_ccr( 0x00 );                    /* 慡懱妱傝崬傒嫋壜         */

    /* 儅僀僐儞僇乕偺忬懺弶婜壔 */
    handle( 0 );
    speed( 0, 0 );

    /* 摦嶌僥僗僩偙偙偐傜 *******************************************/
    while( 1 ) {
        if( cnt1 < 1000 ) {
            led_out( 0x1 );
            i = 50;
        } else if( cnt1 < 2000 ) {
            led_out( 0x0 );
            i = 0;
        } else if( cnt1 < 3000 ) {
            led_out( 0x2 );
            i = -50;
        } else if( cnt1 < 4000 ) {
            led_out( 0x0 );
            i = 0;
        } else {
            cnt1 = 0;
        }
        c = dipsw_get();
        if( c & 0x8) m1 = i; else m1 = 0;
        if( c & 0x4) m2 = i; else m2 = 0;
        if( c & 0x2) m3 = i; else m3 = 0;
        if( c & 0x1) m4 = i; else m4 = 0;
        speed2_f( m1, m2 );             /* 慜椫                     */
        speed2_r( m3, m4 );             /* 屻椫                     */
    }
    /* 摦嶌僥僗僩偙偙傑偱 *******************************************/

    while( 1 ) {
    switch( pattern ) {

    /*****************************************************************
    僷僞乕儞偵偮偄偰
     0丗僗僀僢僠擖椡懸偪
     1丗僗僞乕僩僶乕偑奐偄偨偐僠僃僢僋
    11丗捠忢僩儗乕僗
    12丗塃傊戝嬋偘偺廔傢傝偺僠僃僢僋
    13丗嵍傊戝嬋偘偺廔傢傝偺僠僃僢僋
    21丗侾杮栚偺僋儘僗儔僀儞専弌帪偺張棟
    22丗俀杮栚傪撉傒旘偽偡
    23丗僋儘僗儔僀儞屻偺僩儗乕僗丄僋儔儞僋専弌
    31丗嵍僋儔儞僋僋儕傾張棟丂埨掕偡傞傑偱彮偟懸偮
    32丗嵍僋儔儞僋僋儕傾張棟丂嬋偘廔傢傝偺僠僃僢僋
    41丗塃僋儔儞僋僋儕傾張棟丂埨掕偡傞傑偱彮偟懸偮
    42丗塃僋儔儞僋僋儕傾張棟丂嬋偘廔傢傝偺僠僃僢僋
    51丗侾杮栚偺塃僴乕僼儔僀儞専弌帪偺張棟
    52丗俀杮栚傪撉傒旘偽偡
    53丗塃僴乕僼儔僀儞屻偺僩儗乕僗
    54丗塃儗乕儞僠僃儞僕廔椆偺僠僃僢僋
    61丗侾杮栚偺嵍僴乕僼儔僀儞専弌帪偺張棟
    62丗俀杮栚傪撉傒旘偽偡
    63丗嵍僴乕僼儔僀儞屻偺僩儗乕僗
    64丗嵍儗乕儞僠僃儞僕廔椆偺僠僃僢僋
    *****************************************************************/

    case 0:
        /* 僗僀僢僠擖椡懸偪 */
        if( pushsw_get() ) {
            pattern = 1;
            cnt1 = 0;
            break;
        }
        if( cnt1 < 100 ) {              /* LED揰柵張棟              */
            led_out( 0x1 );
        } else if( cnt1 < 200 ) {
            led_out( 0x2 );
        } else {
            cnt1 = 0;
        }
        break;

    case 1:
        /* 僗僞乕僩僶乕偑奐偄偨偐僠僃僢僋 */
        if( !startbar_get() ) {
            /* 僗僞乕僩両両 */
            led_out( 0x0 );
            pattern = 11;
            cnt1 = 0;
            break;
        }
作者: dengbin2010    时间: 2010-5-1 00:38
还有剩余的程序  太多了写不上去    大家有谁了解的  帮忙解释一下  谢谢
刚学习  不懂
作者: 576725991    时间: 2010-5-1 13:06
将外文注释全都去掉,可能会明朗一点。。。。。。
作者: 战神dencer    时间: 2010-5-3 08:56
帮你顶一下
作者: flyakiss    时间: 2011-6-11 11:15
精神支持




欢迎光临 智能车制作 (http://dns.znczz.com/) Powered by Discuz! X3.2