Исправление команды коррекции, потенциально убраны ошибки преобразования robot code, исправлен баг с зависшим роботом
This commit is contained in:
59
utils.h
59
utils.h
@@ -146,7 +146,7 @@ struct robot_code {
|
||||
*
|
||||
* формат команды: (команда, старший байт) [младший байт, аргумент команды (если есть)] [слово, аргумент если команда требует]
|
||||
*/
|
||||
short code[16]; // формат кода: [команды] <команда 0>
|
||||
unsigned short code[16]; // формат кода: [команды] <команда 0>
|
||||
|
||||
};
|
||||
|
||||
@@ -203,6 +203,9 @@ extern char scheduler_en;
|
||||
|
||||
// сигнал инициализации планировщика, должен быть установлен по фронту разрешения на работу
|
||||
extern char scheduler_start_signal;
|
||||
|
||||
extern short scheduler_correction_stage;
|
||||
|
||||
#else
|
||||
#define barrels ((struct barrel*)barrels_array)
|
||||
#define robot1 (*((struct robot_regs*)&robot1_reg_mx))
|
||||
@@ -240,31 +243,33 @@ extern char scheduler_start_signal;
|
||||
#define hla_night_mode _c_hla_night_mode
|
||||
#define hla_correct_command _c_hla_correct_command
|
||||
|
||||
#define scheduler_correction_stage _c_scheduler_correction_stage
|
||||
|
||||
#endif
|
||||
|
||||
extern const short NIGHT_ZONES[9];
|
||||
|
||||
|
||||
#define ROBOT_CMD_MASK (short)0xF000
|
||||
#define ROBOT_CMD_END_code (short)0x0000
|
||||
#define ROBOT_CMD_MOVE_TO_ZONE_code (short)0x1000
|
||||
#define ROBOT_CMD_MOVE_OFF_code (short)0x2000
|
||||
#define ROBOT_CMD_MOVE_ACCURATE_code (short)0x3000
|
||||
#define ROBOT_CMD_UP_code (short)0x4000
|
||||
#define ROBOT_CMD_DOWN_code (short)0x5000
|
||||
#define ROBOT_CMD_WAIT_code (short)0x6000
|
||||
#define ROBOT_CMD_TMR_SET_code (short)0x7000
|
||||
#define ROBOT_CMD_SET_LOCK_ZONE_code (short)0x8000
|
||||
#define ROBOT_CMD_CORRECT_AXIS_code (short)0x9000
|
||||
#define ROBOT_CMD_INC_ZONE_code (short)0xA000
|
||||
#define ROBOT_CMD_MASK 0xF000U
|
||||
#define ROBOT_CMD_END_code 0x0000U
|
||||
#define ROBOT_CMD_MOVE_TO_ZONE_code 0x1000U
|
||||
#define ROBOT_CMD_MOVE_OFF_code 0x2000U
|
||||
#define ROBOT_CMD_MOVE_ACCURATE_code 0x3000U
|
||||
#define ROBOT_CMD_UP_code 0x4000U
|
||||
#define ROBOT_CMD_DOWN_code 0x5000U
|
||||
#define ROBOT_CMD_WAIT_code 0x6000U
|
||||
#define ROBOT_CMD_TMR_SET_code 0x7000U
|
||||
#define ROBOT_CMD_SET_LOCK_ZONE_code 0x8000U
|
||||
#define ROBOT_CMD_CORRECT_AXIS_code 0x9000U
|
||||
#define ROBOT_CMD_INC_ZONE_code 0xA000U
|
||||
|
||||
// перемещение с барабаном
|
||||
#define ROBOT_WITH_BARREL 0x0800
|
||||
#define ROBOT_WITH_BARREL 0x0800U
|
||||
|
||||
// опции зон
|
||||
#define ROBOT_ZONE_ETCH 0x0400
|
||||
#define ROBOT_ZONE_GAL 0x0200
|
||||
#define ROBOT_ZONE_PARKING 0x0100
|
||||
#define ROBOT_ZONE_ETCH 0x0400U
|
||||
#define ROBOT_ZONE_GAL 0x0200U
|
||||
#define ROBOT_ZONE_PARKING 0x0100U
|
||||
|
||||
|
||||
// опции коррекции осей
|
||||
@@ -275,24 +280,24 @@ extern const short NIGHT_ZONES[9];
|
||||
// макросы для генерации команд
|
||||
#define ROBOT_CMD_END() (ROBOT_CMD_END_code)
|
||||
|
||||
#define ROBOT_CMD_MOVE_TO_ZONE(zone) ((ROBOT_CMD_MOVE_TO_ZONE_code) | (short)(zone & 0x00FF))
|
||||
#define ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL(zone) ((ROBOT_CMD_MOVE_TO_ZONE_code) | (short)(ROBOT_WITH_BARREL) | (short)(zone & 0x00FF))
|
||||
#define ROBOT_CMD_MOVE_TO_PARKING() ((short)(ROBOT_CMD_MOVE_TO_ZONE_code) | (short)(ROBOT_ZONE_PARKING))
|
||||
#define ROBOT_CMD_MOVE_TO_ZONE(zone) (ROBOT_CMD_MOVE_TO_ZONE_code | (unsigned short)(zone & 0x00FF))
|
||||
#define ROBOT_CMD_MOVE_TO_ZONE_WITH_BARREL(zone) (ROBOT_CMD_MOVE_TO_ZONE_code | ROBOT_WITH_BARREL | (unsigned short)(zone & 0x00FF))
|
||||
#define ROBOT_CMD_MOVE_TO_PARKING() (ROBOT_CMD_MOVE_TO_ZONE_code | ROBOT_ZONE_PARKING)
|
||||
|
||||
#define ROBOT_CMD_MOVE_OFF() (ROBOT_CMD_MOVE_OFF_code)
|
||||
#define ROBOT_CMD_MOVE_ACCURATE() (ROBOT_CMD_MOVE_ACCURATE_code)
|
||||
|
||||
#define ROBOT_CMD_UP() (ROBOT_CMD_UP_code)
|
||||
#define ROBOT_CMD_UP_WITH_BARREL() ((ROBOT_CMD_UP_code) | (short)(ROBOT_WITH_BARREL))
|
||||
#define ROBOT_CMD_UP_WITH_BARREL() (ROBOT_CMD_UP_code | ROBOT_WITH_BARREL)
|
||||
#define ROBOT_CMD_DOWN() (ROBOT_CMD_DOWN_code)
|
||||
#define ROBOT_CMD_DOWN_WITH_BARREL() ((ROBOT_CMD_DOWN_code) | (short)(ROBOT_WITH_BARREL))
|
||||
#define ROBOT_CMD_DOWN_WITH_BARREL() (ROBOT_CMD_DOWN_code | ROBOT_WITH_BARREL)
|
||||
|
||||
#define ROBOT_CMD_WAIT(time) ((ROBOT_CMD_WAIT_code) | (short)(time & 0x0FFF))
|
||||
#define ROBOT_CMD_TMR_SET(time) ((ROBOT_CMD_TMR_SET_code) | (short)(time & 0x0FFF))
|
||||
#define ROBOT_CMD_SET_LOCK_ZONE(zone) ((ROBOT_CMD_SET_LOCK_ZONE_code) | (short)(zone & 0x00FF))
|
||||
#define ROBOT_CMD_WAIT(time) (ROBOT_CMD_WAIT_code | (unsigned short)(time & 0x0FFF))
|
||||
#define ROBOT_CMD_TMR_SET(time) ((ROBOT_CMD_TMR_SET_code) | (unsigned short)(time & 0x0FFF))
|
||||
#define ROBOT_CMD_SET_LOCK_ZONE(zone) ((ROBOT_CMD_SET_LOCK_ZONE_code) | (unsigned short)(zone & 0x00FF))
|
||||
|
||||
#define ROBOT_CMD_CORRECT_AXIS(axis) ((short)(ROBOT_CMD_CORRECT_AXIS_code) | (short)axis)
|
||||
#define ROBOT_CMD_INC_ZONE(arg) ((ROBOT_CMD_INC_ZONE_code) | (short)(arg))
|
||||
#define ROBOT_CMD_CORRECT_AXIS(axis) (ROBOT_CMD_CORRECT_AXIS_code | (unsigned short)axis)
|
||||
#define ROBOT_CMD_INC_ZONE(arg) (ROBOT_CMD_INC_ZONE_code | (unsigned short)(arg))
|
||||
|
||||
|
||||
/* ======================== DISABLED ZONES DEFS ======================== */
|
||||
|
||||
Reference in New Issue
Block a user