📄 loader.h
字号:
/************************************************** * * loader.h * * CVS ID: $Id: loader.h,v 1.18 2007/09/07 07:07:03 dellorto Exp $ * Author: Fabio Dell'Orto [FD] - STM * Date: $Date: 2007/09/07 07:07:03 $ * Revision: $Revision: 1.18 $ * * Description: * * Main entry point for the Loader task. * *************************************************** * * COPYRIGHT (C) ST Microelectronics 2005 * All Rights Reserved * *************************************************** * * STM CVS Log: * * $Log: loader.h,v $ * Revision 1.18 2007/09/07 07:07:03 dellorto * Bug fixing and improvements in Tanashin loader * * Revision 1.17 2007/08/14 15:27:56 dellorto * multiple mechanisms * * Revision 1.16 2006/12/19 17:04:49 dellorto * removed unused definitions * added states for new loading transition and 8cm suspected * * Revision 1.15 2006/12/04 14:50:28 dellorto * loader improved, according to new timing specification * * Revision 1.14 2006/10/26 10:23:53 dellorto * improved alignements with Shinwa transition timings * improved protection against illegal switchings * improved handling of mechanisms with altered chuck switch * * Revision 1.13 2006/09/18 09:55:23 belardi * Corrected CVS keyword usage * * Revision 1.12 2006/09/18 09:24:22 belardi * Added Log CVS keyword into file header * * ***************************************************/#ifndef __LOADER_H#define __LOADER_H#include "srvpro.h"#include "events.h"/**************************//* IN loader switch event *//**************************/typedef uint8 t_loader_sw_event;#define SW_EVENT 0x80#define SW_INVALID_VAL ((t_loader_sw_event)(~SW_EVENT))/* Ports */#define SW_INSERT_M01 (SW_1 ? 0x01 : 0x00)#define SW_EJECT_M01 (SW_2 ? 0x02 : 0x00)#define SW_STOP_M01 (SW_4 ? 0x04 : 0x00)#define SW_INSERT_M45 (SW_1 ? 0x04 : 0x00)#define SW_INSERT_M67 (SW_1 ? 0x00 : 0x04)#define SW_EJECT_M4567 (SW_2 ? 0x02 : 0x00)#define SW_STOP_M4567 (REST_SW ? 0x01 : 0x00)// M0_SHINWA_CDC02#define SW_S_000_STOP 0x00#define SW_S_001_ILLEGAL 0x01#define SW_S_010_INSERT 0x02#define SW_S_011_NOCD 0x03#define SW_S_100_TRANSITION 0x04#define SW_S_101_ILLEGAL 0x05#define SW_S_110_EJECT 0x06#define SW_S_111_8CM 0x07// M1_SHINWA_CLC01#define SW_S_000_ILLEGAL 0x00// SW_S_001_ILLEGAL 0x01 already defined#define SW_S_010_ILLEGAL 0x02#define SW_S_011_STOP 0x03#define SW_S_100_NOCD 0x04#define SW_S_101_INSERT_EJECT 0x05#define SW_S_110_8CM 0x06#define SW_S_111_TRANSITION 0x07// M4_TANASHIN_TN2001_12CM// M5_TANASHIN_TN2001_8CM// M6_TANASHIN_TN2007_JVC// M7_TANASHIN_TN2007_BP#define SW_S_LOD_1 0x01#define SW_S_PLY_2 0x02#define SW_S_OUT_3 0x03#define SW_S_ILL_4 0x04#define SW_S_ULD_5 0x05#define SW_S_ILL_6 0x06#define SW_S_INP_7 0x07#define SW_S_PL8_8 0x08#define SW_VALUE(x) ((x) & (~SW_EVENT))#define SW_S_NO_EVENT (t_loader_sw_event)NO_EVENT/* disc size */typedef enum{ DISC_SIZE_UNKNOWN, DISC_SIZE_12CM, DISC_SIZE_8CM, DISC_SIZE_8CM_SUSPICIOUS, DISC_SIZE_8CM_INTERNAL} t_disc_size;/* direction constants for function ldrSetMotor */typedef enum{ LOADER_DIR_IDLE, LOADER_DIR_INSERT, LOADER_DIR_EJECT} t_motor_direction;/***************************//* IN loader command event *//***************************//* loader commands */typedef enum{ LC_NONE = NO_EVENT, LC_INIT, LC_INSERT, LC_EJECT, LC_EM_EJECT} t_loader_cmd_event;typedef RETVAL t_loader_status_event;/* loader states */typedef enum{ LOADER_S_IDLE = 0xF0, LOADER_S_INIT = 0x00, LOADER_S_INIT_1 = 0x01, LOADER_S_INIT_2 = 0x02, LOADER_S_INIT_3 = 0x03, LOADER_S_NO_CD_POSITION = 0x10, LOADER_S_INSERT_BY_USER = 0x11, LOADER_S_STOP_POSITION = 0x20, LOADER_S_STOP_POSITION_12CM = 0x20, LOADER_S_STOP_POSITION_8CM = 0x21, LOADER_S_INSERT_1 = 0x22, LOADER_S_INSERT_2 = 0x23, LOADER_S_INSERT_3 = 0x24, LOADER_S_INSERT_4 = 0x25, LOADER_S_INSERT_5 = 0x26, LOADER_S_INSERT_6 = 0x27, LOADER_S_INSERT_7 = 0x28, LOADER_S_INSERT_8 = 0x29, LOADER_S_INSERT_REPOSITIONING = 0x2A, LOADER_S_NOCD_INSERTING = 0x2B, LOADER_S_EJECT_POSITION = 0x30, LOADER_S_EJECT_POSITION_12CM = 0x30, LOADER_S_EJECT_POSITION_8CM = 0x31, LOADER_S_EJECT_12CM_1 = 0x32, LOADER_S_EJECT_12CM_2 = 0x33, LOADER_S_EJECT_8CM_1 = 0x34, LOADER_S_EJECT_8CM_2 = 0x35, LOADER_S_EJECT_8CM_3 = 0x36, LOADER_S_EJECT_8CM_4 = 0x37, LOADER_S_EJECT_8CM_SUSPICIOUS = 0x38, LOADER_S_EJECT_REPOSITIONING = 0x39, LOADER_S_EJECT_REPOSITIONING_12CM = 0x39, LOADER_S_EJECT_REPOSITIONING_8CM = 0x3A, LOADER_S_EJECT_REPOSITIONING_UNKNOWN = 0x3B, LOADER_S_NOCD_EJECTING = 0x3C, LOADER_S_PUSHBACK_12CM = 0x3D, LOADER_S_PUSHBACK_8CM = 0x3E, LOADER_S_EMERGENCY_EJECT = 0x40, LOADER_S_ERROR = 0x50} t_loader_state;#define LOADER_GSTATE(x) ((t_loader_state)((x) & 0xF0))#define IS_LOADER_12CM_STOP_POSITION() (LOADER_S_STOP_POSITION_12CM == ldr_state)#define IS_LOADER_8CM_STOP_POSITION() (LOADER_S_STOP_POSITION_8CM == ldr_state)#define IS_LOADER_STOP_POSITION() (IS_LOADER_12CM_STOP_POSITION() || IS_LOADER_8CM_STOP_POSITION())/* Ports */#define SW_1 (PDA & 0x0010) // Load Switch#ifdef BGA #define SW_2 (PDB & 0x0020) // 12/8 cm - Eject Switch BGA#else #define SW_2 (PDA & 0x0800) // 12/8 cm - Eject Switch TQFP#endif#define REST_SW (PDA & 0x0100) // Rest Switch#define SW_4 (PDA & 0x0008) // Chuck Switchextern t_motor_direction ldr_motor_dir;extern t_loader_state ldr_state;void loader_fsm (void);void loader_init(void);RETVAL loader_cmd(t_loader_cmd_event* cmd_event);uint8 loader_get_state(void);void loader_switch_init(void);void loader_check_switch_isr(void);#define HAVE_DEBUG_LOADER_SWITCH#define HAVE_DEBUG_LOADER_STATE#define HAVE_DEBUG_LOADER_CMD#define HAVE_DEBUG_LOADER_STATUS_EVENT#ifdef HAVE_DEBUG_LOADER_SWITCH #define DEBUG_LOADER_SWITCH(s) DEBUG_printf(s)#else #define DEBUG_LOADER_SWITCH(s) do{}while(0)#endif#ifdef HAVE_DEBUG_LOADER_STATE #define DEBUG_LOADER_STATE(s) DEBUG_printf(s)#else #define DEBUG_LOADER_STATE(s) do{}while(0)#endif#ifdef HAVE_DEBUG_LOADER_CMD #define DEBUG_LOADER_CMD(s) DEBUG_printf(s)#else #define DEBUG_LOADER_CMD(s) do{}while(0)#endif#ifdef HAVE_DEBUG_LOADER_STATUS_EVENT #define DEBUG_LOADER_STATUS_EVENT(s) DEBUG_printf(s)#else #define DEBUG_LOADER_STATUS_EVENT(s) do{}while(0)#endif#endif /* __LOADER_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -