You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
707 lines
22 KiB
707 lines
22 KiB
4 years ago
|
////////////////////////////////////////////////////////////////////////////
|
||
|
///@copyright Copyright (c) 2018, ���ؿƼ� All rights reserved.
|
||
|
///-------------------------------------------------------------------------
|
||
|
/// @file bsp_gc6133.c.c
|
||
|
/// @brief bsp @ driver config
|
||
|
///-------------------------------------------------------------------------
|
||
|
/// @version 1.0
|
||
|
/// @author CC
|
||
|
/// @date 20180331
|
||
|
/// @note cc_AS_stc02
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
|
||
|
#include "Bsp_debug.h"
|
||
|
#include "bsp_func.h"
|
||
|
#include "bsp_power.h"
|
||
|
#include "bsp_cam_isr.h"
|
||
|
#include "bsp_cam.h"
|
||
|
#include "../msp/uart0.h"
|
||
|
#include "cw63xx.h"
|
||
|
#include "../clib/Clib.h"
|
||
|
#include "../clib/bit.h"
|
||
|
#include "../msp/time.h"
|
||
|
|
||
|
/// ��һ���ȵڶ����ӳ�20ms ���� ����ͬ��������,��һ��10.5ms�������� �ڶ�����û�з���,�����ɸ���
|
||
|
|
||
|
#define D_p_send_delay(); L1_task_Cdelay(D_Cdelay_15ms*(1+D_cameralIndex));
|
||
|
|
||
|
////>>>>>>>>>>>>>>>>>>>>>_s_task_GC032A_>>>>>>>>>>>>>>>>>>>>>>
|
||
|
|
||
|
|
||
|
void L0_p_send(void);
|
||
|
extern TS_P_rf433 TS_paer_value;
|
||
|
|
||
|
|
||
|
struct _s_task_GC032A_ s_task_GC032A;
|
||
|
|
||
|
void L2_task_GC032A_init(void)
|
||
|
{
|
||
|
L0_cam_isr_init();
|
||
|
|
||
|
L1_task_init(&s_task_GC032A.task);
|
||
|
|
||
|
s_task_GC032A.next_line = D_clear;
|
||
|
s_task_GC032A.line_ok = D_run;
|
||
|
s_task_GC032A.line_get = D_clear;
|
||
|
s_task_GC032A.cal_ok = D_clear;
|
||
|
s_task_GC032A.vs_ok = D_clear;
|
||
|
}
|
||
|
|
||
|
//// �ɼ����еij��� 20190217
|
||
|
//// step01 �ϵ�ʱ����ʼ��
|
||
|
///step02 �������üĴ���
|
||
|
///step03 �����жϽ����ɼ�ģʽ
|
||
|
///step04 ����һ֡���� ��ʼ����ÿһ�� ͬʱ���Թر�led��Լ��
|
||
|
/// step05 ��������Ҫ������ �ɼ�����Ҫ��һ������
|
||
|
/// step06------>��������״̬
|
||
|
/// |----->�����ɼ���һ��
|
||
|
|
||
|
|
||
|
#if(MODE_CAM_LINE == MODE_CAM)
|
||
|
|
||
|
|
||
|
#if 0
|
||
|
|
||
|
/// �ɼ�������ʱһ��ʱ�� ����led�� Ϊ�´ε�cam�����ṩ��Դ
|
||
|
/// �ȴ�run�ź� �����رչ���,���� fixme:����������������
|
||
|
void L2_task_GC032A_handle(struct _s_task_GC032A_ *s)
|
||
|
{
|
||
|
TTSS_Task_init()
|
||
|
//#define D_pclk_per_hs 6
|
||
|
// PrintCam_L0_uart0_uc('$');
|
||
|
L2_task_go(D_task_GC032A_init_standby);
|
||
|
TTSS_Task_step(D_task_GC032A_init_standby)
|
||
|
L0_GC032A_standby();
|
||
|
D_cam_led_on();
|
||
|
//PWDN�������ͣ�0 -- ����������1 -- ���ߣ�
|
||
|
// PrintCam_L0_uart0_uc('2');
|
||
|
L2_task_go(D_task_GC032A_init_DVDD);
|
||
|
TTSS_step01(D_task_GC032A_init_DVDD);
|
||
|
L0_GC032A_work();
|
||
|
//IOVDD�ϵ磬����ʱ50us���ϣ�
|
||
|
L2_task_go(D_task_GC032A_init_AVDD);
|
||
|
TTSS_Task_step(D_task_GC032A_init_AVDD);
|
||
|
//AVDD28�ϵ磬����ʱ0us����
|
||
|
D_cam_AVDD_on();
|
||
|
L2_task_go(D_task_GC032A_init_pwdn);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn);
|
||
|
//�ṩ032AϵͳƵ��
|
||
|
L0_MCLKO_init(D_ON);
|
||
|
L2_task_GC032A_init();
|
||
|
//PWDN�������ߣ���ʱ������
|
||
|
L0_GC032A_standby();
|
||
|
DL0_WDT();//
|
||
|
L2_task_go(D_task_GC032A_init_pwdn_wait);
|
||
|
L1_task_Cdelay(D_Cdelay_15ms);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn_wait);
|
||
|
L0_GC032A_work();
|
||
|
gRccUs03 = 0;
|
||
|
L2_task_go(D_task_GC032A_write_reg);
|
||
|
L1_task_Cdelay(D_Cdelay_15ms);
|
||
|
TTSS_Task_step(D_task_GC032A_write_reg);
|
||
|
//��������ͷ���� ��Լ2sʱ��
|
||
|
if(0 != GC6133_init_reg_tbl[gRccUs03][0])
|
||
|
{
|
||
|
//GC032a_L0_uart0_uc('k');
|
||
|
L0_GC032A_write(GC6133_init_reg_tbl[gRccUs03][0],GC6133_init_reg_tbl[gRccUs03][1]);///
|
||
|
gRccUs03 ++;
|
||
|
}else
|
||
|
{
|
||
|
L2_task_go(D_task_GC032A_div);
|
||
|
L1_task_Tdelay(D_Tdelay_1s);///��Ҫ ����ʱ���ܹؼ�aaaaaa
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_div);
|
||
|
//L0_GC032A_write(0xfc,0x02); //��λ??
|
||
|
L0_GC032A_write(0xf8,0x03);/// �ָ���Ƶ
|
||
|
L0_GC032A_write(0xfa,D_0xfa);DL0_WDT();
|
||
|
L2_task_go(D_task_GC032A_wakup_sample);
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
|
||
|
////�ȴ� �����������������Ź���
|
||
|
TTSS_step03(D_task_GC032A_wakup_sample)
|
||
|
L1_GC032A_sleep(D_wakeup);
|
||
|
GC032a_L0_uart0_uc('w');
|
||
|
///D_ledb_OFF();
|
||
|
L2_task_go((D_task_GC032A_wakup_sample2));
|
||
|
L1_task_Tdelay(D_Tdelay_1s5);
|
||
|
TTSS_step04(D_task_GC032A_wakup_sample2);
|
||
|
D_VSYNCS_open();////��̨���жϿ�ʼ����
|
||
|
L2_task_go(D_task_GC032A_one_frame);
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
TTSS_step04(D_task_GC032A_one_frame);
|
||
|
////������һ֡���ݵĿ�ʼ((�����ں�̨���ж�))
|
||
|
///vs /```24.8ms````\__________________________..1.16s...____________________________/````````\___________
|
||
|
///cam_led ```````````\_________________________________________________________/`````````````````\____
|
||
|
if(D_ready == s->vs_ok)///Ϊ�˹ص�
|
||
|
{
|
||
|
/// PrintCam_L0_uart0_uc('V');
|
||
|
s_task_GC032A.vs_ok = D_clear;
|
||
|
D_cam_led_off();
|
||
|
L2_task_go(D_task_GC032A_wait);
|
||
|
//L1_task_Tdelay(D_Tdelay_50ms); ////ȡ����getline������ ��cam��Ҫ���Ƶ�ʱ��
|
||
|
}
|
||
|
TTSS_step05(D_task_GC032A_wait);////>>>>>>>>>>>>>>>>>>>>>>>---
|
||
|
///��������Ҫ��Line(�����ں�̨���ж�)
|
||
|
if(D_clear != s->line_get)
|
||
|
{DL0_WDT(); ////memo20190217 : ����1.15s
|
||
|
//PrintCam_L0_uart0_uc(s->line_get);// L2_line_send();
|
||
|
s->buf2_ok = D_ready;///buf2_ok�������ÿɹ��㷨��ѯ
|
||
|
L2_task_go(D_task_GC032A_sleep);
|
||
|
/// L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_sleep)
|
||
|
///��������
|
||
|
L1_GC032A_sleep(D_sleep);
|
||
|
L0_GC032A_standby();
|
||
|
L0_MCLKO_init(D_OFF);
|
||
|
D_cam_led_off();
|
||
|
L2_task_go(D_task_FLOW_PreSend);
|
||
|
|
||
|
////>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
|
||
|
TTSS_Task_step(D_task_FLOW_PreSend);
|
||
|
D_txd4_wakeup();///������ 1ms��433 ��sleep�����Է���
|
||
|
/// TS_paer_value.r123.cameraBoardPower = s->t_stamp+0x30;
|
||
|
L0_p_send();
|
||
|
//D_txd4_low();
|
||
|
L2_task_go(D_task_FLOW_send);
|
||
|
// L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
///L1_task_Cdelay(60);//2ms---mcu+433������
|
||
|
TTSS_Task_step(D_task_FLOW_send);
|
||
|
//D_txd4_wakeup();
|
||
|
L0_uart0_sendArray((unsigned char *)&TS_paer_value,6);
|
||
|
L2_task_go(D_task_FLOW_send2);
|
||
|
TTSS_Task_step(D_task_FLOW_send2);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
L2_task_go(D_task_FLOW_send3);///
|
||
|
D_p_send_delay();
|
||
|
|
||
|
}
|
||
|
TTSS_Task_step(D_task_FLOW_send3);
|
||
|
L0_uart0_sendArray((unsigned char *)&TS_paer_value,6);
|
||
|
L2_task_go(D_task_FLOW_send4);
|
||
|
TTSS_Task_step(D_task_FLOW_send4);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
L2_task_go(D_task_FLOW_send5);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_FLOW_send5);
|
||
|
D_txd4_low();///���ƺ�ʱ15ms
|
||
|
D_cam_AVDD_off();///ע��Ӱ�췢��
|
||
|
L2_task_go(0);
|
||
|
|
||
|
///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
TTSS_Task_end();
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
#elif(MODE_CAM_FRAME == MODE_CAM)
|
||
|
|
||
|
#elif(MODE_CAM_TEST == MODE_CAM)
|
||
|
|
||
|
#define PrintCam_L0_uart0_uc(x) L0_uart0_uc(x)
|
||
|
#define PrintCam_D_send_us(x) L0_uart0_us(x)
|
||
|
|
||
|
///#define L0_uart0_sendArraylong(a,start,end) L0_uart0_sendArray(a(start))
|
||
|
|
||
|
/// �ɼ�������ʱһ��ʱ�� ����led�� Ϊ�´ε�cam�����ṩ��Դ
|
||
|
/// �ȴ�run�ź� �����رչ���,���� fixme:����������������
|
||
|
void L2_task_GC032A_handleTest(struct _s_task_GC032A_ *s)
|
||
|
{
|
||
|
TTSS_Task_init()
|
||
|
//#define D_pclk_per_hs 6
|
||
|
// PrintCam_L0_uart0_uc('$');
|
||
|
L2_task_go(D_task_GC032A_init_standby);
|
||
|
TTSS_Task_step(D_task_GC032A_init_standby)
|
||
|
L0_GC032A_standby();
|
||
|
D_cam_led_on();
|
||
|
//PWDN�������ͣ�0 -- ����������1 -- ���ߣ�
|
||
|
// PrintCam_L0_uart0_uc('2');
|
||
|
L2_task_go(D_task_GC032A_init_DVDD);
|
||
|
TTSS_step01(D_task_GC032A_init_DVDD);
|
||
|
L0_GC032A_work();
|
||
|
//IOVDD�ϵ磬����ʱ50us���ϣ�
|
||
|
L2_task_go(D_task_GC032A_init_AVDD);
|
||
|
TTSS_Task_step(D_task_GC032A_init_AVDD);
|
||
|
//AVDD28�ϵ磬����ʱ0us����
|
||
|
D_cam_AVDD_on();
|
||
|
L2_task_go(D_task_GC032A_init_pwdn);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn);
|
||
|
//�ṩ032AϵͳƵ��
|
||
|
L0_MCLKO_init(D_ON);
|
||
|
L2_task_GC032A_init();
|
||
|
//PWDN�������ߣ���ʱ������
|
||
|
L0_GC032A_standby();
|
||
|
DL0_WDT();//
|
||
|
L2_task_go(D_task_GC032A_init_pwdn_wait);
|
||
|
L1_task_Cdelay(D_Cdelay_15ms);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn_wait);
|
||
|
L0_GC032A_work();
|
||
|
gRccUs03 = 0;
|
||
|
L2_task_go(D_task_GC032A_write_reg);
|
||
|
L1_task_Cdelay(D_Cdelay_15ms);
|
||
|
TTSS_Task_step(D_task_GC032A_write_reg);
|
||
|
//��������ͷ���� ��Լ2sʱ��
|
||
|
if(0 != GC6133_init_reg_tbl[gRccUs03][0])
|
||
|
{
|
||
|
L0_GC032A_write(GC6133_init_reg_tbl[gRccUs03][0],GC6133_init_reg_tbl[gRccUs03][1]);///
|
||
|
gRccUs03 ++;
|
||
|
}else
|
||
|
{
|
||
|
L2_task_go(D_task_GC032A_div);
|
||
|
L1_task_Tdelay(D_Tdelay_1s);///��Ҫ ����ʱ���ܹؼ�aaaaaa
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_div);
|
||
|
//L0_GC032A_write(0xfc,0x02); //��λ??
|
||
|
L0_GC032A_write(0xf8,0x03);/// �ָ���Ƶ
|
||
|
L0_GC032A_write(0xfa,D_0xfa);DL0_WDT();
|
||
|
L2_task_go(D_task_GC032A_wakup_sample);
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
|
||
|
////�ȴ� �����������������Ź���
|
||
|
TTSS_step03(D_task_GC032A_wakup_sample)
|
||
|
L1_GC032A_sleep(D_wakeup);
|
||
|
///D_ledb_OFF();
|
||
|
L2_task_go((D_task_GC032A_wakup_sample2));
|
||
|
L1_task_Tdelay(D_Tdelay_1s5);
|
||
|
TTSS_step04(D_task_GC032A_wakup_sample2);
|
||
|
D_VSYNCS_open();////��̨���жϿ�ʼ����
|
||
|
PrintCam_L0_uart0_uc('w');
|
||
|
L2_task_go(D_task_GC032A_one_frame);
|
||
|
//////////////////////////////////////////////////////////////////////////////
|
||
|
TTSS_step04(D_task_GC032A_one_frame);
|
||
|
|
||
|
|
||
|
PrintCam_L0_uart0_uc('.');
|
||
|
|
||
|
////������һ֡���ݵĿ�ʼ((�����ں�̨���ж�))
|
||
|
///vs /```24.8ms````\__________________________..1.16s...____________________________/````````\___________
|
||
|
///cam_led ```````````\_________________________________________________________/`````````````````\____
|
||
|
if(D_ready == s->vs_ok)///Ϊ�˹ص�
|
||
|
{
|
||
|
s->vs_ok = D_clear;
|
||
|
PrintCam_L0_uart0_uc('V');
|
||
|
/// D_cam_led_off();
|
||
|
D_HSYNCS_open();
|
||
|
L2_task_go(D_task_GC032A_send2);
|
||
|
//L1_task_Tdelay(D_Tdelay_50ms); ////ȡ����getline������ ��cam��Ҫ���Ƶ�ʱ��
|
||
|
}
|
||
|
|
||
|
TTSS_Task_step(D_task_GC032A_send2)///----------------------��ʼһ��һ�еķ���
|
||
|
|
||
|
if(1 == s_task_GC032A.line_ok)
|
||
|
{
|
||
|
s_task_GC032A.line_ok = 0;
|
||
|
///��������
|
||
|
PrintCam_L0_uart0_uc(0xfe);
|
||
|
PrintCam_L0_uart0_uc(0xfd);
|
||
|
///PrintCam_D_send_us(DR_pclk_n);
|
||
|
PrintCam_D_send_us(DR_line_n);
|
||
|
L0_uart0_sendArray(&s_task_GC032A.buf[0],200);
|
||
|
|
||
|
L2_task_go(D_task_GC032A_06);
|
||
|
/// L1_task_Tdelay(D_Tdelay_50ms);
|
||
|
}else { }
|
||
|
TTSS_step06(D_task_GC032A_06);
|
||
|
/*********************************************************
|
||
|
TTS_for_add(s_task_GC032A.lines,0,627)///[0]--[199]199
|
||
|
|
||
|
/// s_task_GC032A.buf[s_task_GC032A.lines] = s_task_GC032A.lines;
|
||
|
s_task_GC032A.buf[s_task_GC032A.lines] = 0;
|
||
|
TTS_for_add_end()
|
||
|
|
||
|
**************************************************/
|
||
|
if(D_uart0_send_over())
|
||
|
{
|
||
|
L0_uart0_sendArray(&s_task_GC032A.buf[200],200);
|
||
|
L2_task_go(D_task_GC032A_07);
|
||
|
}
|
||
|
TTSS_step06(D_task_GC032A_07);
|
||
|
if(D_uart0_send_over())
|
||
|
{
|
||
|
L0_uart0_sendArray(&s_task_GC032A.buf[400],200);
|
||
|
L2_task_go(D_task_GC032A_08);
|
||
|
}
|
||
|
TTSS_step06(D_task_GC032A_08);
|
||
|
if(D_uart0_send_over())
|
||
|
{
|
||
|
L0_uart0_sendArray(&s_task_GC032A.buf[600],D_pclk_per_hs-600);/// 628point
|
||
|
|
||
|
// 'fe','fd','fd','fc' 46 44 20 46 43 0d 0a
|
||
|
PrintCam_L0_uart0_uc(0xfd);
|
||
|
PrintCam_L0_uart0_uc(0xfc);
|
||
|
s_task_GC032A.next_line = 1;
|
||
|
L2_task_go(D_task_GC032A_send2);
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
}
|
||
|
///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
TTSS_Task_end();
|
||
|
}
|
||
|
#endif
|
||
|
|
||
|
void L1_GC032A_sleep(unsigned char onf)
|
||
|
{///FE 15 Fd 33 44//standby
|
||
|
///FE 05 Fd 33 44//wakeup
|
||
|
if(D_sleep == onf)
|
||
|
{
|
||
|
// GC032a_L0_uart0_uc('L');
|
||
|
/// ����standby:
|
||
|
L0_GC032A_write(0xfc,0x03); L0_GC032A_write(0xf7,0x00); L0_GC032A_write(0xf9,0xcf); L0_GC032A_write(0xf3,0x00);
|
||
|
Lc_delay_nop(30);
|
||
|
Lc_delay_nop(30);
|
||
|
}else
|
||
|
{
|
||
|
// GC032a_L0_uart0_uc('X');
|
||
|
/// �˳�standby:
|
||
|
L0_GC032A_write(0xfc,0x02); L0_GC032A_write(0xf7,0x01); L0_GC032A_write(0xf9,0xce); L0_GC032A_write(0xf3,0xff);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
void L2_line_send(void)
|
||
|
{
|
||
|
#if 0
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
// PrintCam_L0_uart0_uc(0xfe);
|
||
|
// PrintCam_L0_uart0_uc(0xfd);
|
||
|
PrintCam_D_send_us(DR_pclk_n);
|
||
|
/// PrintCam_D_send_us(s_task_GC032A.usSum);
|
||
|
PrintCam_L0_uart0_uc(0x09);
|
||
|
// PrintCam_D_send_us(0x1234); PrintCam_D_send_us(0x5678); PrintCam_D_send_us(0xabcd);
|
||
|
|
||
|
// PrintCam_L0_uart0_uc(0x0d);
|
||
|
// PrintCam_L0_uart0_uc(0x0a);
|
||
|
PrintCam_L0_uart0_sendArray(&(s_task_GC032A.buf[50]),40);
|
||
|
|
||
|
PrintCam_L0_uart0_uc(0x09);
|
||
|
PrintCam_L0_uart0_sendArray(&(s_task_GC032A.buf[50]),40);
|
||
|
PrintCam_L0_uart0_uc(0x09);
|
||
|
PrintCam_L0_uart0_sendArray(&s_task_GC032A.buf[D_pclk_per_hs_570-21],20);
|
||
|
|
||
|
///Lc_hex2ascii(&(s_task_GC032A.buf[0]),10,ts_uart_send_shop.buf);
|
||
|
// Lc_hex2ascii(&s_task_GC032A.buf[D_pclk_per_hs_570-10],2,ts_uart_send_shop.buf2);
|
||
|
// L0_uart0_sendArray(ts_uart_send_shop.buf2,2*3);
|
||
|
///#ifdef D_debug_add_send
|
||
|
|
||
|
// PrintCam_L0_uart0_uc('P');
|
||
|
|
||
|
///L0_uart0_sendArraylong(s_task_GC032A.buf,D_pclk_per_hs_570-10,D_pclk_per_hs_570);
|
||
|
// 'fe','fd','fd','fc'
|
||
|
// PrintCam_L0_uart0_uc(0xfd);
|
||
|
// PrintCam_L0_uart0_uc(0xfc);
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
///#else
|
||
|
/*****
|
||
|
??
|
||
|
10 10 10 10 10 10 10 10 10 10
|
||
|
10 10 10 10 11 11 11 11 11 11
|
||
|
11 11 11 11 11 11 11 11 11 11
|
||
|
11 11
|
||
|
10 10 10 10 10 10 10 10 10 10
|
||
|
10 10 10 10 10 10 10 10 10 10
|
||
|
CRpaper =04F8-g-offdiff :.
|
||
|
|
||
|
******/
|
||
|
///vU16 i; for(i = 0;i <= D_pclk_per_hs_570; i ++) {s_task_GC032A.buf[i]=i; }
|
||
|
PrintCam_L0_uart0_uc(0xfe);
|
||
|
PrintCam_L0_uart0_uc(0xfd);
|
||
|
PrintCam_D_send_us(DR_pclk_n);
|
||
|
L0_uart0_sendArray(s_task_GC032A.buf,200);
|
||
|
L0_uart0_sendArray(&s_task_GC032A.buf[200],200);
|
||
|
L0_uart0_sendArray(&s_task_GC032A.buf[400],(D_pclk_per_hs_570-400));
|
||
|
|
||
|
// PrintCam_D_send_us(ts_task_ALGO.usSum_temp);
|
||
|
//// PrintCam_D_send_us(s_task_GC032A.down_point);
|
||
|
// PrintCam_D_send_us(s_task_GC032A.down_point - s_task_GC032A.up_point);
|
||
|
// DR_pdata_n =0;
|
||
|
// PrintCam_D_send_us(0x1234);
|
||
|
// 'fe','fd','fd','fc'
|
||
|
// PrintCam_L0_uart0_uc(0xfd);
|
||
|
// PrintCam_L0_uart0_uc(0xfc);
|
||
|
#endif
|
||
|
/* */
|
||
|
}
|
||
|
|
||
|
|
||
|
#if 0
|
||
|
|
||
|
void GC032A_port_init(void)
|
||
|
{
|
||
|
///00 ˫���� ������20mA ������270-150uS
|
||
|
///01 �������� 20mA ������
|
||
|
///10 ����
|
||
|
///11 ��© open-Drain �ڲ����������Ͽ� ��©ģʽ�ȿ��Զ��ⲿ״̬Ҳ���Զ��������ߵ͵�ƽ
|
||
|
|
||
|
//p3.6 --HSYNC
|
||
|
// BITN_0(P3M1,BITN6);BITN_0(P3M0,BITN6);
|
||
|
///P3.7 -- VSYNC
|
||
|
// BITN_0(P3M1,BITN7);BITN_0(P3M0,BITN7);
|
||
|
L0_GC032A_standby();
|
||
|
D_cam_AVDD_on();
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
//// AX CMD R2 R3 R4
|
||
|
/// Ae 01 01 03 04
|
||
|
void L3_GC032A_fun(U8 *pPara)
|
||
|
{
|
||
|
*pPara = 0;
|
||
|
}
|
||
|
/********
|
||
|
void L3_GC032A_fun(U8 *pPara)
|
||
|
{
|
||
|
U8 i,val[2];
|
||
|
// unsigned short j;
|
||
|
TS_P_debug *p = pPara;
|
||
|
switch(p->cmd)
|
||
|
{
|
||
|
|
||
|
case 3: //Ae 03 03 04 00
|
||
|
//xx 03 R2 R3 xx
|
||
|
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
PrintCam_L0_uart0_uc('l');
|
||
|
Lc_delay_ms(12);
|
||
|
s_task_GC032A.vline_get = p->R2 << 8;
|
||
|
s_task_GC032A.vline_get |= p->R3;
|
||
|
L0_uart0_uchex(p->R2);
|
||
|
Lc_delay_ms(12);
|
||
|
L0_uart0_uchex(p->R3);
|
||
|
Lc_delay_ms(1200);
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
break;
|
||
|
};
|
||
|
|
||
|
|
||
|
}
|
||
|
********/
|
||
|
///#else
|
||
|
|
||
|
//// fe 01 reg data 0cx
|
||
|
/// Ac 01 02 03 ocr ---bsp_debug.c
|
||
|
/// U8 i,val[2];
|
||
|
// unsigned short j;
|
||
|
TS_P_debug *p = pPara;
|
||
|
switch(p->cmd)
|
||
|
{
|
||
|
|
||
|
case 0x01: p.cmd p.R2 p.R3 p.ocr
|
||
|
///Ac 00 03 01 00/// ACC_X[13:6]
|
||
|
|
||
|
void L3_GC032A_fun(U8 *pPara)
|
||
|
{
|
||
|
U8 i,val[2];
|
||
|
// unsigned short j;
|
||
|
TS_P_debug *p = pPara;
|
||
|
switch(p->cmd)
|
||
|
{
|
||
|
|
||
|
case 0x01:
|
||
|
///AE 01 FE 33 44 // L0_GC032A_read(0xFE,&i,1); ��ȡ��ǰҳ��
|
||
|
///AE 01 F0 33 44 // L0_GC032A_read(0xF0,&i,1); ��ȡid i= 0x23
|
||
|
L0_GC032A_read(p->R2,&i,1);
|
||
|
PrintCam_L0_uart0_uc(i);
|
||
|
break;
|
||
|
//������ͷ���ò���
|
||
|
case 0x02:
|
||
|
/// fe 02 r2 r3 xx ���üĴ���(r2) = r3
|
||
|
/// sysreg FE 02 FE 01 44 //���õ�ǰҳ��01
|
||
|
L0_GC032A_write(p->R2,p->R3);
|
||
|
PrintCam_L0_uart0_uc(p->R2);
|
||
|
PrintCam_L0_uart0_uc(p->R3);
|
||
|
break;
|
||
|
//��������ͷ�������գ�
|
||
|
case 0x03:/// sysreg FE 03 03 04 05 //�����Ƿ�����һline���ݣ����ݷ�Ϊһ֡=640Line = 640line*480pclk ��
|
||
|
///AE 03 01 33 44 //s_task_GC032A.line_onf = 01
|
||
|
///AE 03 00 33 44 //s_task_GC032A.line_onf = 00
|
||
|
s_task_GC032A.line_onf = p->R2;
|
||
|
PrintCam_L0_uart0_uc(0x30|s_task_GC032A.line_onf);
|
||
|
break;
|
||
|
case 0x05:
|
||
|
///AE 05 01 33 44 //���� standby
|
||
|
///AE 05 00 33 44 //�˳� standby
|
||
|
L1_GC032A_sleep(p->R2);
|
||
|
PrintCam_L0_uart0_uc(0x30|s_task_GC032A.line_onf);
|
||
|
break;
|
||
|
case 6:///AE 06 22 33 44
|
||
|
D_cam_led_off();
|
||
|
break;
|
||
|
case 7:///AE 07 22 33 44
|
||
|
D_cam_led_on();
|
||
|
|
||
|
break;
|
||
|
/*******************
|
||
|
case 0x00:
|
||
|
L0_GC032A_read(p->R2,val,p->R3);
|
||
|
PrintCam_L0_uart0_uc(p->cmd);
|
||
|
PrintCam_L0_uart0_uc(p->R2);
|
||
|
PrintCam_L0_uart0_uc(p->R3);
|
||
|
PrintCam_L0_uart0_uc('G');
|
||
|
for(i = 0;i < p->R3;i++)
|
||
|
{
|
||
|
PrintCam_L0_uart0_uc(val[i]);
|
||
|
}
|
||
|
break;
|
||
|
//��ȡ����ͷ���ò���
|
||
|
case 0x35:
|
||
|
L0_GC032A_standby();// led 17.1-16.9ma standby 6.2ma
|
||
|
PrintCam_L0_uart0_uc(0x31);
|
||
|
break;
|
||
|
case 0x36:
|
||
|
/// �˳�standby:
|
||
|
L0_GC032A_work();
|
||
|
PrintCam_L0_uart0_uc(0x30);
|
||
|
break;
|
||
|
|
||
|
|
||
|
****************************/
|
||
|
|
||
|
default:
|
||
|
break;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
#if 0
|
||
|
254 253
|
||
|
|
||
|
FE FD 02 7F ///639
|
||
|
1A 1B 1B 1B 1B 1B 1A 1C 1B 1B 1B 1A 1A 19 19 1A 19 1A 19 1A 19 1A 19 19 18 19 19 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 17 16 17 16 18 18 18 18 18 18 18 18 18 18 18 18 17 17 17 17 18 18 17 17 17 17 17 16 17 17 17 17 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 18 17 17 17 17 17 17 17 17 17 17 18 18 18 18 18 19 19 19 19 19 19 18 18 19 19 19 18 18 18 1A 19 19 19 19 19 1A 1A 1A 1A 1A 1A 19 19 18 19 19 19 1A 1A 1A 1B 1B 1B 1C 1C 1C 1C 1C 1C 1C 1D 1D 1D 1C 1C 1C 1C 1D 1E 1C 1C 1C 1D 1C 1C 1C 1C 1C 1C 1C 1D 1D 1D 1D 1C 1B 1A 1B 1A 1B 1D 1D 1D 1D 1D 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1B 1B 1B 1B 1B 1B 1C 1C 1C 1C 1B 1B 1C 1C 1C 1E 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1B 1C 1B 1C 1C 1D 1D 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1D 1D 1D 1C 1C 1C 1C 1C 1D 1D 1E 1D 1E 1F 1F 1E 1E 1E 1E 1E 1E 1E 1E 1D 1D 1C 1C 1C 1C 1C 1C 1C 1C 1C 1D 1D 1D 1D 1C 1D 1D 1D 1D 1D 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1E 1D 1C 1C 1C 1C 1C 1C 1C 1B 1C 1C 1C 1C 1C 1C 1C 1C 1C 1C 1B 1C 1C 1C 1C 1C 1C 1D 1C 1C 1C 1C 1D 1F 1F 1D 1C 1C 1B 1C 1C 1C 1C 1C 1C 1B 1B 1B 1B 1B 1B 1B 1C 1C 1C 1C 1C 1D 1C 1C 1C 1D 1D 1D 1D 1E 1D 1C 1C 1C 1C 1C 1C 1C 1C 1D 1D 1E 1E 1E 1D 1D 1D 1D 1C 1D 1C 1C 1C 1C 1D 1D 1D 1D 1C 1C 1C 1C 1C 1C 1B 1B 1C 1C 1C 1C 1B 1B 1B 1B 1D 1B 1C 1B 1B 1B 1C 1D 1C 1B 19 1A 19 1B 1C 1A 1A 1A 1A 1A 1A 1B 1B 1B 1A 1B 19 1B 1A 1A 1A 1A 1A 19 18 19 19 1A 1A 1A 1A 1A 19 19 18 18 18 18 18 1A 18 18 18 18 18 18 18 18 19 1A 19 19 19 19 19 19 19 1A 1A 1A 1A 19 19 18 18 18 18 18 18 19 18 18 18 19 18 18 18 18 18 1A 18 18 18 18 18 18 18 18 17 17 17 18 18 18 18 17 17 17 17 17 16 17 17 18 18 19 19 19 19 19 19 18 18 18 18 18 18 17 17 18 18 17 17 17 17 17 17 19 17 17 17 17 17 17 17 17 17 17 17 17 18 17 17 17 17 17 17 17 17 16 16 17 17 17 17 17 16 16 17 17 17 17 16 16 16 16 16 16 16 17 16 16 16 16 16 16 16 16 16 16 18 19 16 16 16 16 15 16 17 17 16 15 15 16 16 16 15 14 14 15 17 15 15 15 15 16 16 16 16 16 15 16 16 16 15 15 15 15 15
|
||
|
FD FC
|
||
|
253 252
|
||
|
|
||
|
254 253 /639./ 253 252
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#if 0/// memo
|
||
|
//memo20190217 : ����1.15s
|
||
|
/*********
|
||
|
[15:37:04.337]�ա�����v 4.337
|
||
|
[15:37:05.487]�ա�����v 5.487 1.15
|
||
|
[15:37:06.637]�ա�����v 6.637 1.15
|
||
|
[15:37:07.787]�ա�����k 7.787 1.15
|
||
|
[15:37:08.947]�ա�����v 8.947 1.16
|
||
|
[15:37:10.097]�ա�����v 10.097 1.15
|
||
|
[15:37:11.247]�ա�����v 11.247 1.15
|
||
|
[15:37:12.397]�ա�����v 12.397 1.15
|
||
|
[15:37:13.547]�ա�����k 13.547 1.15
|
||
|
48 31 61 77 77 77 77 2E 56 77 77 77 33 76 01 D3 56 2E 77 77 77 00
|
||
|
|
||
|
***/
|
||
|
|
||
|
void GC032A_port_init(void)
|
||
|
{
|
||
|
///00 ˫���� ������20mA ������270-150uS
|
||
|
///01 �������� 20mA ������
|
||
|
///10 ����
|
||
|
///11 ��© open-Drain �ڲ����������Ͽ� ��©ģʽ�ȿ��Զ��ⲿ״̬Ҳ���Զ��������ߵ͵�ƽ
|
||
|
//p3.6 --HSYNC
|
||
|
// BITN_0(P3M1,BITN6);BITN_0(P3M0,BITN6);
|
||
|
///P3.7 -- VSYNC
|
||
|
// BITN_0(P3M1,BITN7);BITN_0(P3M0,BITN7);
|
||
|
// L0_GC032A_standby();
|
||
|
// D_cam_AVDD_on();
|
||
|
}
|
||
|
|
||
|
void L2_line_send(void)
|
||
|
{
|
||
|
// /// vU16 usi;
|
||
|
PrintCam_D_send_us(0x1234);
|
||
|
PrintCam_D_send_us(0x5678);
|
||
|
PrintCam_D_send_us(0xabcd);
|
||
|
#if 0
|
||
|
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
// PrintCam_L0_uart0_uc(0xfe);
|
||
|
// PrintCam_L0_uart0_uc(0xfd);
|
||
|
PrintCam_D_send_us(DR_pclk_n);
|
||
|
PrintCam_D_send_us(0x1234);
|
||
|
PrintCam_D_send_us(0x5678);
|
||
|
PrintCam_D_send_us(0xabcd);
|
||
|
|
||
|
PrintCam_L0_uart0_uc(0x0d);
|
||
|
PrintCam_L0_uart0_uc(0x0a);
|
||
|
|
||
|
PrintCam_L0_uart0_sendArray(&(s_task_GC032A.buf[0]),2);
|
||
|
|
||
|
PrintCam_L0_uart0_uc(0x09);
|
||
|
/// PrintCam_L0_uart0_sendArray(&s_task_GC032A.buf[D_pclk_per_hs_570-10],9);
|
||
|
///Lc_hex2ascii(&(s_task_GC032A.buf[0]),10,ts_uart_send_shop.buf);
|
||
|
Lc_hex2ascii(&s_task_GC032A.buf[D_pclk_per_hs_570-10],2,ts_uart_send_shop.buf2);
|
||
|
L0_uart0_sendArray(ts_uart_send_shop.buf2,2*3);
|
||
|
///#ifdef D_debug_add_send
|
||
|
|
||
|
PrintCam_L0_uart0_uc('P');
|
||
|
|
||
|
///L0_uart0_sendArraylong(s_task_GC032A.buf,D_pclk_per_hs_570-10,D_pclk_per_hs_570);
|
||
|
// 'fe','fd','fd','fc'
|
||
|
// PrintCam_L0_uart0_uc(0xfd);
|
||
|
// PrintCam_L0_uart0_uc(0xfc);
|
||
|
// PrintCam_L0_uart0_uc(0x0d);
|
||
|
// PrintCam_L0_uart0_uc(0x0a);
|
||
|
///#else
|
||
|
|
||
|
[18:41:16.591]��?????02 FE FD 02 42 12 12 12 12 12 12 12 12 12 12 12 11 11 11 11 11 11 11 11 11 11 11 11 11 12 12 12 12 12 12 12 12 12 12 12 11 11 11 11 11 11 11 12 12 12 13 13 14 15 16 16 17 18 18 17 17 16 16 17 19 1C 1F 25 28 2A 2C 2D 2E 2F 30 31 31 32 32 32 32 31 31 32 32 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 32 32 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 33 34 33 34 34 34 34 34 34 34 34 34 34 34 35 35 34 35 35 35 35 35 35 36 35 35 36 36 11 11 11 FD FC
|
||
|
|
||
|
|
||
|
|
||
|
PrintCam_L0_uart0_uc(0xfe);
|
||
|
PrintCam_L0_uart0_uc(0xfd);
|
||
|
PrintCam_D_send_us(DR_pclk_n);
|
||
|
L0_uart0_sendArraylong(s_task_GC032A.buf,0,199);
|
||
|
L0_uart0_sendArraylong(s_task_GC032A.buf,200,399);
|
||
|
if(D_pclk_per_hs < 600)
|
||
|
{
|
||
|
L0_uart0_sendArraylong(s_task_GC032A.buf,400,599);
|
||
|
}else
|
||
|
{
|
||
|
L0_uart0_sendArraylong(s_task_GC032A.buf,400,599);
|
||
|
L0_uart0_sendArraylong(s_task_GC032A.buf,600,(D_pclk_per_hs-1));
|
||
|
}
|
||
|
// PrintCam_D_send_us(ts_task_ALGO.usSum_temp);
|
||
|
//// PrintCam_D_send_us(s_task_GC032A.down_point);
|
||
|
// PrintCam_D_send_us(s_task_GC032A.down_point - s_task_GC032A.up_point);
|
||
|
// DR_pdata_n =0;
|
||
|
// PrintCam_D_send_us(0x1234);
|
||
|
// 'fe','fd','fd','fc'
|
||
|
PrintCam_L0_uart0_uc(0xfd);
|
||
|
PrintCam_L0_uart0_uc(0xfc);
|
||
|
#endif
|
||
|
/* */
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|