📄 image_s.h
字号:
/******************************************************************
head file for image_s_m.c *
UART (CPLD) UART_OUT,UATR_IN 2007.09.04
transfer data width is 8 bit *
for cis: 4 seg *
Parameters setup:
BRIGHT: 0--0x7f ( Integral Time = Bright*5|ìS ,0:dark )
line_m: Sampling line Number for One MCLK (valid 2-8)
pixel_m: sample One pixel for every pixel_m cis_clk(valid 1,6)
Sync_c : internel Frame sync.
CIS Mode setup:
D5=0: Number of LED=1 (Led_M=1)
D5=1: Number of LED=Led_M
D4=0: Image Vertical High Resolution (Line_m=1)
D4=1: Image Vertical low Resolution
D3=0: Image Horizontal High Resolution (Pixel_M=1,6)
D3=1: Image Horizontal Low Resolution
Led_M2 //2 Led is used
Led_M3 //3 Led is used
Led_M4 //4 Led is used
******************************************************************/
#define FrameWindow 150 //120
#define LineWindow 288
#define FrameWindow_Offset 15 //30//5//15
#define BRIGHT 20 /*0--16 (0---dark, max 16) */
//#define Sync_c //internel sync.
/* Mode setup: choise one for cis_mode flom following 6 line Macro definition */
#define cis_mode0 0x00 /* MODE0: 1 LED,V-High,H-High,line_m */
// #define cis_mode1 0x08 /* MODE1: 1 LED,V-High,H-LOW ,line_m */
// #define cis_mode2 0x10 /* MODE2: 1 LED,V-LOW ,H-High */
// #define cis_mode3 0x18 /* MODE3: 1 LED,V-Low ,H-Low */
// #define cis_mode6 0x30 /* MODE6: M LED,V-Low ,H-High ,Led_M */
// #define cis_mode7 0x38 /* MODE7: M LED,V-Low ,H-Low ,Led_M */
#ifdef cis_mode0
#define pixel_m 6
#define line_m 4
#define WorkMode cis_mode0 | line_m-1
#define CisMode
#endif
#ifdef cis_mode1
#define pixel_m 1
#define line_m 4
#define WorkMode cis_mode1 | line_m-1
#define CisMode
#endif
#ifdef cis_mode2
#define pixel_m 6
#define line_m 1
#define WorkMode cis_mode2
#endif
#ifdef cis_mode3
#define pixel_m 1
#define line_m 1
#define WorkMode cis_mode3
#endif
#ifdef cis_mode6
#define pixel_m 6
#define line_m 1
/* choise one for Led_M flom following 3 line Macro definition */
// #define Led_M2 //2 Led is used
// #define Led_M3 //3 Led is used
#define Led_M4 //4 Led is used
#ifdef Led_M2
#define Led_M 2
#define WorkMode cis_mode6 | Led_M-1
#endif
#ifdef Led_M3
#define Led_M 3
#define WorkMode cis_mode6 | Led_M-1
#endif
#ifdef Led_M4
#define Led_M 4
#define WorkMode cis_mode6 | Led_M-1
#endif
#endif
#ifdef cis_mode7
#define pixel_m 1
#define line_m 1
/* choise one for Led_M from following 3 line Macro definition */
// #define Led_M2 //2 Led is used
// #define Led_M3 //3 Led is used
#define Led_M4 //4 Led is used
#ifdef Led_M2
#define Led_M 2
#define WorkMode cis_mode7 | Led_M-1
#endif
#ifdef Led_M3
#define Led_M 3
#define WorkMode cis_mode7 | Led_M-1
#endif
#ifdef Led_M4
#define Led_M 4
#define WorkMode cis_mode7 | Led_M-1
#endif
#endif
/*----------------------------------------------------------*/
#define IMAGE_WIDTH LineWindow*pixel_m
#ifndef Led_M
#define IMAGE_HIGHT FrameWindow*line_m
#endif
#ifdef Led_M
#define IMAGE_HIGHT FrameWindow*Led_M
#endif
//--------------------------------------------
// Image Parameters
#define IMAGE_W_ST0 6 //for image0
#define IMAGE_L_ST0 0 //for image0
#define IMAGE_WIDTH0 270 //for image0
#define IMAGE_HIGHT0 FrameWindow //for image0
#define IMAGE_W_ST1 75 //for image1
#define IMAGE_L_ST1 58 //for image1
#define IMAGE_WIDTH1 384 //for image1
#define IMAGE_HIGHT1 96 //for image1
#define pixel_m01 1
#define line_m01 1
#define IMAGE_W_ST2 75 //for image2
#define IMAGE_L_ST2 58 //for image2
#define IMAGE_WIDTH2 384 //for image2
#define IMAGE_HIGHT2 96 //for image2
#define pixel_m02 2
#define line_m02 2
//--------------------------------------------------------
// port definenition
#define AD_COM_ADDR0 (unsigned char *)0xb0000400; //wr, clear all
#define AD_COM_ADDR1 (unsigned char *)0xb0000440;
//wr b7=1:sample
// b7=0: stop
// b6: AD0_LOAD
// b5: AD1_LOAD
#define AD_COM_ADDR2 (unsigned char *)0xb0000480;
//wr b4--b0=0-10000; cis_led britness
#define AD_COM_ADDR3 (unsigned char *)0xb00004c0; //w ad_init
#define AD_COM_ADDR4 (unsigned char *)0xb0000500; //w ad_init
#define test_ (unsigned char *)0xb0000540; //test led4
#define com_add0 0xb0000000 // uart data port
#define com_add1 0xb0000040 //uart state port
#define SamplingMode_se 0xb0000080 //sampling control port
//Frame Sample Control port
#define FrameCon1 0xb00000c0 //Frame Led Control port
#define FrameCon2 ( FrameCon1+0x40 ) //Frame Sample Control port
#define FrameCon3 ( FrameCon1+0x80 ) //Frame Window Control port
#define FrameCon4 ( FrameCon1+0xc0 ) //Frame Window Posision Control port
//----------------------------------------
#define TCCINTNUM 10 //edma Transfer complete code
#define EDMA_SOURCE_ADDR 0xa0000000 //edma source addr is pds. RAM
//----------------------------------------
#pragma DATA_ALIGN(line_buffer,128);
#pragma DATA_ALIGN(ImageBuffer0,128);
#pragma DATA_ALIGN(ImageBuffer1,128);
#pragma DATA_ALIGN(ImageBuffer2,128);
unsigned char line_buffer[IMAGE_WIDTH];
far unsigned char ImageBuffer0[IMAGE_WIDTH0*IMAGE_HIGHT0];
far unsigned char ImageBuffer1[IMAGE_WIDTH1*IMAGE_HIGHT1];
far unsigned char ImageBuffer2[IMAGE_WIDTH2*IMAGE_HIGHT2];
volatile int frame_counter;
volatile int line_counter;
volatile int sampling_stop;
volatile int frame_sam_end=0;
volatile int get_sampling;
int i,j;
unsigned char *pixel_p0, *pixel_p1, *pixel_p2;
/*------------------------------------------------------
AD9814_1 parameters
------------------------------------------------------*/
unsigned short ad0_init_com_w[8]={ //ad9814_1 control words
0x0060, //
0x1080, // MUX
0x203c, // Red PGA
0x303c, // Green PGA
0x4000, // Blue PGA
0x5100, // Red Offset
0x6120, // Green Offset
0x7000,}; // Blue Offset
/*------------------------------------------------------
AD9814_2 parameters
------------------------------------------------------*/
unsigned short ad1_init_com_w[8]={ //ad9814_2 control words
0x0060, //
0x1080, // MUX
0x203c, // Red PGA
0x303c, // Green PGA
0x4000, // Blue PGA
0x5120, // Red Offset
0x6120, // Green Offset
0x7000,}; // Blue Offset
extern far void vectors();
unsigned char *ad_com_addr_p;
unsigned char *ad_com_addr_p1;
union
{ unsigned short Tw;
unsigned char Tb[2];
} value;
#pragma DATA_ALIGN(temp,4);
#pragma DATA_ALIGN(tmp00,4);
volatile short temp;
unsigned char tmp00;
/*------------------------------------------------*/
unsigned char *inbuff0;
int x;
#define tr_lenth 32 //lenth of buffer for uart receive and out
unsigned char s_state,state1;
unsigned char *p00,uart232_out=0x55,uart232_in,*s_p00;
unsigned char trans_buf[tr_lenth],receive_buf[tr_lenth],*trans_p,*receive_p;
int trans_counter,trans_flag,receive_flag;
//--------------------------------------------
FILE *file;
#define PLL_BASE_ADDR 0x01b7c000
#define PLL_PID ( PLL_BASE_ADDR + 0x000 )
#define PLL_CSR ( PLL_BASE_ADDR + 0x100 )
#define PLL_MULT ( PLL_BASE_ADDR + 0x110 )
#define PLL_DIV0 ( PLL_BASE_ADDR + 0x114 )
#define PLL_DIV1 ( PLL_BASE_ADDR + 0x118 )
#define PLL_DIV2 ( PLL_BASE_ADDR + 0x11C )
#define PLL_DIV3 ( PLL_BASE_ADDR + 0x120 )
#define PLL_OSCDIV1 ( PLL_BASE_ADDR + 0x124 )
#define CSR_PLLEN 0x00000001
#define CSR_PLLPWRDN 0x00000002
#define CSR_PLLRST 0x00000008
#define CSR_PLLSTABLE 0x00000040
#define DIV_ENABLE 0x00008000
#define EMIF_GCTL 0x01800000
#define EMIF_CE1 0x01800004
#define EMIF_CE0 0x01800008
#define EMIF_CE2 0x01800010
#define EMIF_CE3 0x01800014
#define EMIF_SDRAMCTL 0x01800018
#define EMIF_SDRAMTIM 0x0180001C
#define EMIF_SDRAMEXT 0x01800020
#define SDRAM_BASE_ADDRESS 0x80000000
#define SDRAM_SIZE 0x400000
#define CCFG 0x01840000; //cash configation register
#define FLASH_SIZE 0x40000
#define FLASH_START 0x90000000
#define FLASH_END (FLASH_START + FLASH_SIZE)
#define FLASH_ADR1 0x90000555
#define FLASH_ADR2 0x900002AA
#define FLASH_KEY1 0xAA
#define FLASH_KEY2 0x55
#define FLASH_KEY3 0xA0
#define FLASH_KEY4 0x80
#define FLASH_KEY5 0x10
//-----------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -