?? ist.h
字號:
/**************************************************************************************************
*
* VERSION
* 1.0
*
* DESCRIPTION
* This file contains the register map of W90N740 processor.
*
* DATA STRUCTURES
* None
*
* FUNCTIONS
* None
*
* HISTORY
* 10/28/2003 Ver 1.0 Created by Hank Ji
*
* REMARK
* None
*
*************************************************************************************************/
/****************************************************************/
/* define function and data struct in all .c file */
/****************************************************************/
#define True 0
#define False 1
#define nops __asm { nop }
typedef struct
{
uint8 head;
uint8 command;
uint16 size;
uint8 error;
uint8 parity;
uint8 end;
}com_string;
#define SetBit(var,bit) (var |= (1<<bit))
#define ClrBit(var,bit) (var &= ~(1<<bit))
#define ValBit(var,bit) (var & (1<<bit))
/****************************************************************/
/* hardware address macro define */
/****************************************************************/
#define cs2 (*(volatile unsigned char *)(0x30000000))
#define cs3 (*(volatile unsigned char *)(0x40000000))
#define SYS_MODE ((GPIO_DATAIN>>19) & 0x01)
#define MODE_NORMAL 0x00080000
#define MODE_TEST 0
#define Lock_open (GPIO_DATAOUT |= (0x00000001<<0)) //gpio 1
#define Lock_close (GPIO_DATAOUT &= ~(0x00000001<<0))
/********************** i2c bus input & output ******************/
/* sensor board and arm board pin to pin */
/****************************************************************/
#define IIC_CMD_TEST 0
#define IIC_CMD_SW 0x01 // R SWITCH狀態
#define IIC_CMD_ROTARY 0x02 // R ROTARY狀態
#define IIC_CMD_POWLOW 0x03 // R 電源狀態
//#define IIC_CMD_80H// W ADD下次要讀寫的地址
#define IIC_CMD_LED 0x81 // W LED狀態
#define IIC_CMD_BUZZER 0x82 // W 蜂鳴器狀態
#define IIC_CMD_POWER 0x83 // W 關電源
//#define Power_on E_write_byte(IIC_CMD_POWER,0x55) //gpio 0
#define Power_off E_write_byte(IIC_CMD_POWER,0x55)
#define Led_redon E_write_byte(IIC_CMD_LED,1) //gpio 2
#define Led_redoff E_write_byte(IIC_CMD_LED,0)
#define Led_greenon E_write_byte(IIC_CMD_LED,2) //gpio 3
#define Led_greenoff E_write_byte(IIC_CMD_LED,0)
#define Buzz_on E_write_byte(IIC_CMD_BUZZER,1) //gpio 12
#define Buzz_off E_write_byte(IIC_CMD_BUZZER,0)
#define KEY_DEL_ALL ((GPIO_DATAIN>>15) & 0x01)
#define KEYVAL_DEL_ALL 0
#define KEY_VALUE (Fun_read_status(IIC_CMD_SW))
#define KEYVAL_OK 6
#define KEYVAL_ADD 5
#define KEYVAL_DEL 3
#define POW_STATUS (Fun_read_status(IIC_CMD_POWLOW))
#define DIGTAL_SW (Fun_read_status(IIC_CMD_ROTARY))
#define USER1_SWITCH 4
#define USER2_SWITCH 2
#define USER3_SWITCH 6
/************************ bmf image *****************************/
/* sensor board and arm board pin to pin */
/* sensor board: a1 a0 d3 d2 d1 d0 */
/* arm board: d5 d4 d3 d2 d1 d0 */
/****************************************************************/
#define WAKE ((GPIO_DATAIN>>1) & 0x01) //gpio 1
#define Bmf_reset_hi (GPIO_DATAOUT |= (0x00000001<<3)) //gpio 3
#define Bmf_reset_lo (GPIO_DATAOUT &= ~(0x00000001<<3))
#define Bmf_endsh ((GPIO_DATAIN>>12) & 0x01) //GPIO 12
#define Bmf_dsc_hi (GPIO_DATAOUT |= (0x00000001<<13)) //gpio 13
#define Bmf_dsc_lo (GPIO_DATAOUT &= ~(0x00000001<<13))
#define Bmf_sed ((GPIO_DATAIN>>14) & 0x01) //GPIO 14
#define Bmf_Address cs2
#define Bmf_LDS_1 0x04 //LDS = 1 000100b
#define Bmf_DCI_1 0x14 //DCI = 1 010100b
#define Bmf_DCI_0 0x10 //DCI = 0 010000b
#define Bmf_PLDS_1 0x0c //PDS,LDS = 1 001100b
#define Bmf_Parallel 0x30 //init Parallel 110000b
/****************************************************************/
/* Flash address */
/****************************************************************/
#define Flash_baseaddr 0x7f000000
#define Flash_Ctlreg1 (VPchar(Flash_baseaddr+0x5555))
#define Flash_Ctlreg2 (VPchar(Flash_baseaddr+0x2aaa))
#define MA_PARAM_PAGE1 1534 //PARAMETER 1 FIRST ADDRESS
#define MA_PARAM_PAGE2 1535 //PARAMETER 2 FIRST ADDRESS
#define MA_PROG_PAGE 96 //PROGRAM FIRST ADDRESS
#define MA_USER1_PAGE 1536 //USER 1 TEMPLATE FIRST ADDRESS
#define MA_USER2_PAGE 1568 //USER 2 TEMPLATE FIRST ADDRESS
#define MA_USER3_PAGE 1600 //USER 2 TEMPLATE FIRST ADDRESS
#define MAX_user_num 3
#define MAX_SYSINF_LENGTH (3+1+1)
//系統參數頁偏移
#define User1_inf_offset 0
#define User2_inf_offset 1
#define User3_inf_offset 2
#define Sys_inf_offset 0x10
#define param1_offset 0x30 //AreaHold_enroll
#define param2_offset 0x32 //AreaHold_match
#define param3_offset 0x34 //QualityHold_enroll
#define param4_offset 0x36 //QualityHold_match
#define param5_offset 0x38 //SimilarityHold
#define Valid_inf_offset 0x7e
#define Check_sum_offset 0x7f
#define Valid_inf 0x55
/****************************************************************/
/* communication command and error */
/****************************************************************/
#define CMD_TEST 1
#define CMD_GET_IMAGE 2
#define CMD_GET_TEMPLATE 3
#define CMD_GET_USER_NUM 4
#define CMD_GET_USER 5
#define CMD_GET_SYS 6
#define CMD_GET_IO 7
#define CMD_SET_USER 8
#define CMD_DELETE_USER 9
#define CMD_GET_FINGER 10
#define CMD_SET_IO 11
#define CMD_MATCH_TEMPLATE 13
#define CMD_SET_LEVEL 14
#define CMD_GET_LEVEL 15
#define CMD_POWER_OFF 16
#define CMD_GET_ID 17
#define CMD_SEND_IMG_BEGIN 22
#define CMD_SEND_IMG_NEXT 23
#define CMD_SEND_IMG_AGAIN 24
#define CMD_SEND_IMG_END 25
#define CMD_TEST_SYSTEM 26
#define CMD_TEST_IMAGE 27
#define ERR_NONE 0
#define ERR_CAPTURE_FAIL 1
#define ERR_RDIMG_ERR 2
#define ERR_COMMAND_FAIL 3
#define ERR_USER_NOTEXISTED 4
#define ERR_PARITY 5
#define ERR_PRGNUM_FAIL 6
#define ERR_SIZE 7
#define ERR_ERR 8
#define ERR_PARAMETER 9
#define ERR_WRITE_ERR 10
#define ERR_MATCH_FAIL 31
#define ERR_TEST_IMAGE 32
#define ERR_PARAM 0x81
#define ERR_SDRAM 0x82
#define ERR_FLASH 0x84
#define PCCOM_HEAD 0x0B
#define PCCOM_END 0x0E
/****************************************************************/
/* macro define about algorithm */
/****************************************************************/
#define MIN_IMAGE_SIZE 256*384
#define MIN_template_size 1138
#define MA_CAPTURE_TIMES 3
/************************************************/
/* variable in all .c file */
/************************************************/
/*--------- define variable in main.c ---------*/
#ifdef C_main
#define Main_ext
#else
#define Main_ext extern
#endif
Main_ext uint8 SwitchVal; //switch value
Main_ext uint8 UserList[MAX_user_num];
Main_ext uint8 UserNum;
Main_ext bool flash_status;
/*--------- define variable in timer.c ---------*/
#ifdef C_Timer
#define Timer_ext
#else
#define Timer_ext extern
#endif
Timer_ext unsigned int cur_ticks; //1 sec = 100 ticks
Timer_ext unsigned int b_times;
Timer_ext volatile bool Flag_timer;
/*--------- define variable in flash.c ---------*/
#ifdef C_Flash
#define Flash_ext
#else
#define Flash_ext extern
#endif
Flash_ext uint8 flash_buffer[256];
/*--------- define variable in communication.c ---------*/
#ifdef C_communication
#define commu_ext
#else
#define commu_ext extern
#endif
commu_ext com_string pcdata;
commu_ext uint8 RevData[MIN_template_size+20];
commu_ext uint32 Imag_data_size;
commu_ext uint8 ImageBuffer[MIN_IMAGE_SIZE];
commu_ext bool Flag_get_image;
/*--------- define variable in communication.c ---------*/
#ifdef C_uart
#define UART_ext
#else
#define UART_ext extern
#endif
UART_ext uint8 ascii_1,ascii_2;
UART_ext uint8 hexdata;
/*--------- define variable in IIC.c ---------*/
#ifdef C_iic
#define iic_ext
#else
#define iic_ext extern
#endif
iic_ext uint8 I2C_byte;
#define SDA_HI (GPIO_DATAOUT |= (0x00000001<<5))
#define SDA_LO (GPIO_DATAOUT &= ~(0x00000001<<5))
#define SCL_HI (GPIO_DATAOUT |= (0x00000001<<6))
#define SCL_LO (GPIO_DATAOUT &= ~(0x00000001<<6))
#define SCL_DIR_OUT GPIO_DIR |= 0x00000040
//#define SDA_DIR_IN GPIO_DIR &= 0xffffffdf
#define SDA_DIR_IN GPIO_DIR = 0x00002049
//#define SDA_DIR_OUT GPIO_DIR |= 0x00000020
#define SDA_DIR_OUT GPIO_DIR = 0x00002069
#define SDA_INPUT (GPIO_DATAIN & 0x00000020)>>5
#define I2C_WRITE 0xa0 //0x54
#define I2C_READ 0xa1 //0x55
/************************************************/
/* declare function in all .c file */
/************************************************/
extern void Fun_init_system(void);
extern bool Fun_check_lowpower(void);
extern bool Fun_check_flash(void);
extern bool Fun_judge_sw(void);
extern void Fun_show_lowpower(void);
extern void Fun_show_error(void);
extern void Fun_show_ok(void);
extern void Fun_show_open(void);
extern void Fun_buzzer1(void);
extern void Fun_buzzer2(void);
extern void Fun_delay_10ms(uint16 t);
extern void Fun_delay_1ms(uint16 t);
extern void Fun_flash_writepage(uint16 page);
extern void Fun_flash_readpage(uint16 page);
extern void Fun_wr_template(uint8 UserNumber,uint8 *pImageTemplate);
extern void Fun_rd_template(uint8 UserNumber,uint8 *pImageTemplate);
extern void Fun_del_template(uint8 UserNumber);
extern uint8 Fun_rd_parameter(void);
extern void Fun_wr_parameter(void);
extern void Fun_SetIntISR(int, void (*)());
extern __irq void IRQ_IntHandler(void);
extern void Fun_TimerInitialize(int channel,unsigned int total_times);
extern void Fun_UART_SetBaudRate(uint32 baud_rate);
extern int Fun_UART_Initialize(uint32 baud_rate);
extern uint8 Fun_UART_getchar(void);
extern uint16 Fun_UART_getdata(uint8 *getdata);
extern bool Fun_UART_putchar(uint8 ch);
extern bool Fun_UART_senddata(uint8 *pSenddata,uint16 Num,uint8 mode);
extern bool atoi(uint8 asciiData);
extern void itoa(uint8 inData);
extern void Fun_delay_1us(void);
extern bool Fun_Sensor_init(void);
extern bool Fun_Get_BmfImage(uint8 *pImage);
extern bool Fun_capture_image(uint8 *pImage);
extern bool Fun_read_image(uint8 *pImage);
extern bool Fun_pc_com(void);
extern void Fun_test_system(void);
extern bool Fun_test_flash(void);
extern void Fun_test_image(void);
extern void Fun_SEND_IMG_BEGIN(void);
extern void Fun_SEND_IMG_NEXT(void);
extern void Fun_SEND_IMG_AGAIN(void);
extern void Fun_SEND_IMG_END(void);
extern void Fun_pccom_test(void);
extern void Fun_pccom_getimage(void);
extern void Fun_pccom_getsys(void);
extern void Fun_pccom_getio(void);
extern void Fun_pccom_setio(void);
extern void Fun_pccom_poweroff(void);
extern uint8 check_sum(uint8 *pData,uint16 Num);
extern bool E_address(uint8 Address);
extern bool E_read_byte(uint8 Address);
extern bool E_write_byte(uint8 Address,uint8 data);
extern uint8 Fun_read_status(uint8 Address);
extern void delay(void);
extern void I_start(void);
extern void I_stop(void);
extern void I_init(void);
extern bool I_clock(void);
extern bool I_send(uint8 I_data);
extern uint8 I_receive(void);
extern void I_Ack(void);
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -