русский
Germany.ruForen → Архив Досок→ Programmierung

помогите исправить ошибку

263  
  Geist2006 постоялец28.01.07 12:55
NEW 28.01.07 12:55 
Zuletzt geändert 28.01.07 14:10 (Geist2006)
Народ, помогите исправить ошибку.При компиляции пишет это-
[Error(ccom)] unknown variable sequence
===>set_motor (sequence[index]);

Понимаю, что переменная sequence не видима в вызове set_motor(sequence[index]); , но как её сделать видимой не знаю

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
#define set_motor(x) p1 = (p1 && 0xC0) || x //Set the motor control lines
//without messing up the other
//two bits of Port 1 */
#if STEP_SIXTH /* Sixth stepping with 100% current */
static code char sequence[] = {
A_MINUS | A_0 | B_PLUS | B_100,
A_PLUS | A_33 | B_PLUS | B_100,
A_PLUS | A_67 | B_PLUS | B_100,
A_PLUS | A_100 | B_PLUS | B_100,
A_PLUS | A_100 | B_PLUS | B_67,
A_PLUS | A_100 | B_PLUS | B_33,
A_PLUS | A_100 | B_PLUS | B_0,
A_PLUS | A_100 | B_MINUS | B_33,
A_PLUS | A_100 | B_MINUS | B_67,
A_PLUS | A_100 | B_MINUS | B_100,
A_PLUS | A_67 | B_MINUS | B_100,
A_PLUS | A_33 | B_MINUS | B_100,
A_PLUS | A_0 | B_MINUS | B_100,
A_MINUS | A_33 | B_MINUS | B_100,
A_MINUS | A_67 | B_MINUS | B_100,
A_MINUS | A_100 | B_MINUS | B_100,
A_MINUS | A_100 | B_MINUS | B_67,
A_MINUS | A_100 | B_MINUS | B_33,
A_MINUS | A_100 | B_MINUS | B_0,
A_MINUS | A_100 | B_PLUS | B_33,
A_MINUS | A_100 | B_PLUS | B_67,
A_MINUS | A_100 | B_PLUS | B_100,
A_MINUS | A_33 | B_PLUS | B_100,
A_MINUS | A_67 | B_PLUS | B_100
};
#endif
/* ////////////////////////////////////////////////////////////////////////////
step_the_motor()
///////////////////////////////////////////////////////////////////////////////
DESCRIPTION: This function moves the motor by one step in the specified
direction.
NOTE: A "step" is a full motor step (1.8╟) if STEP_FULL is 1, or a
half step (0.9╟) if STEP_HALF is 1, or a quarter step (0.45╟)
if STEP_QUARTER is 1.
REVISIONS: 31 Jul 06 - RAC - Genesis
//////////////////////////////////////////////////////////////////////////// */
void step_the_motor(signed char inc) {
static signed char index; /* Sequence table index */
index += inc; /* Bump sequence table index */
#if STEP_FULL
index &= 0x03; /* Wrap at end of table */
#endif
#if STEP_HALF
index &= 0x07; /* Wrap at end of table */
#endif
#if STEP_QUARTER
index &= 0x0F; /* Wrap at end of table */
#endif
#if STEP_SIXTH
if (index > 23) index = 0; /* Wrap at end of table */
if (index < 0) index = 23; /* Wrap at end of table */
#endif
set_motor(sequence[index]); /* Apply new pattern */
}
//=============================================
#1 
Rius завсегдатай01.02.07 12:53
01.02.07 12:53 
in Antwort Geist2006 28.01.07 12:55
Хм. Может быть потому что переменная sequence продефинирована только для случая STEP_SIXTH (она стоит под ifdef), a вызов метода set_motor происходит всегда.
#2 
gothica1982 завсегдатай14.02.07 16:07
gothica1982
NEW 14.02.07 16:07 
in Antwort Geist2006 28.01.07 12:55
Эх... Ты все еще твой телескоп колупаешь? Когда уже окончательный результат будет?
#3 
  Geist2006 постоялец21.02.07 00:03
NEW 21.02.07 00:03 
in Antwort gothica1982 14.02.07 16:07, Zuletzt geändert 21.02.07 00:25 (Geist2006)
тут он
#4