中级会员
- 积分
- 330
- 威望
- 272
- 贡献
- 48
- 兑换币
- 12
- 注册时间
- 2010-5-1
- 在线时间
- 5 小时
|
这是一个智能寻迹车的源程序
我看不懂
帮忙把那些乱七八糟的汉字翻译出来
最好详细的解释一下
谢谢
/****************************************************************************/
/* 儅僀僐儞僇乕僩儗乕僗婎杮僾儘僌儔儉 "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;
} |
|