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.
575 lines
16 KiB
575 lines
16 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"
|
||
|
|
||
|
TS_P_rf433 TS_paer_value=
|
||
|
{
|
||
|
0xaa,///vU8 ha;
|
||
|
// 0xaa,///vU8 hb;
|
||
|
0xad,
|
||
|
0x0123,
|
||
|
// 0x00,///U16 paperNum:12; //12bitֽ������
|
||
|
///U8 cameraIndex:2; //����ͷ����
|
||
|
///U8 cameraWorking:1; //�Ƿ���������
|
||
|
///U8 reserved: 1; //����
|
||
|
0x56,///U8 cameraBoardPower; //����
|
||
|
0xcc//, 0xaa///vU8 hc;
|
||
|
|
||
|
};
|
||
|
|
||
|
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();
|
||
|
|
||
|
}
|
||
|
////>>>>>>>>>>>>>>>>>>>>>_s_task_GC032A_>>>>>>>>>>>>>>>>>>>>>>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
struct _s_task_GC032A_ s_task_GC032A;
|
||
|
|
||
|
void L2_task_GC032A_init(void)
|
||
|
{
|
||
|
L0_cam_isr_init();
|
||
|
|
||
|
L1_task_init(&s_task_GC032A.task);
|
||
|
///L3_task_s_go(s_task_GC032A,D_task_init);
|
||
|
s_task_GC032A.next_line = D_clear;
|
||
|
s_task_GC032A.run = D_run;
|
||
|
s_task_GC032A.line_get = D_clear;
|
||
|
s_task_GC032A.cal_ok = D_clear;
|
||
|
s_task_GC032A.frames = 0;
|
||
|
s_task_GC032A.vs_ok = D_clear;
|
||
|
s_task_GC032A.line_en = D_ON;
|
||
|
s_task_GC032A.cal_en = D_OFF;
|
||
|
/// D_HSYNCS_open();//BITN_1(INT_CLKO, INT_EX2);//ʹ��INT2�ж�
|
||
|
}
|
||
|
|
||
|
#if 10
|
||
|
|
||
|
///// get
|
||
|
void L2_task_GC032A_handle(struct _s_task_GC032A_ *s)
|
||
|
{
|
||
|
|
||
|
TTSS_Task_init();
|
||
|
//PWDN�������ͣ�0 -- ����������1 -- ���ߣ�
|
||
|
L0_GC032A_standby();
|
||
|
L0_uart0_uc('2');
|
||
|
L2_task_go(D_task_GC032A_init_DVDD);
|
||
|
TTSS_Task_step(D_task_GC032A_init_DVDD);
|
||
|
L0_GC032A_work();
|
||
|
//IOVDD�ϵ磬����ʱ50us���ϣ�
|
||
|
D_cam_DVDD_on();
|
||
|
// L0_uart0_uc('3');
|
||
|
L2_task_go(D_task_GC032A_init_AVDD);
|
||
|
//L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
TTSS_Task_step(D_task_GC032A_init_AVDD);
|
||
|
//AVDD28�ϵ磬����ʱ0us����
|
||
|
D_cam_AVDD_on();
|
||
|
L0_uart0_uc('4');
|
||
|
L2_task_go(D_task_GC032A_init_pwdn);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn);
|
||
|
//�ṩ032AϵͳƵ��
|
||
|
/// L0_MCLKO_init(D_ON);
|
||
|
//L0_uart0_uc('n');
|
||
|
//PWDN�������ߣ���ʱ������
|
||
|
L0_GC032A_standby();DL0_WDT();//
|
||
|
L2_task_go(D_task_GC032A_init_pwdn_wait);
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn_wait);
|
||
|
L0_GC032A_work();
|
||
|
GC032a_L0_uart0_uc('5');/// Lc_delay_ms(20);
|
||
|
gRccUs03 = 0;
|
||
|
// L0_GC032A_write(GC6133_init_reg_tbl[gRccUs03][0],GC6133_init_reg_tbl[gRccUs03][1]);///
|
||
|
L2_task_go(D_task_GC032A_write_reg);
|
||
|
//L2_task_go(0);
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
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_500ms);
|
||
|
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();//
|
||
|
GC032a_L0_uart0_uc('6');
|
||
|
L2_task_go(D_task_GC032A_start_time);
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
|
||
|
////�ȴ� �����������������Ź���
|
||
|
TTSS_Task_step(D_task_GC032A_start_time);
|
||
|
D_cam_led_on();D_VSYNCS_open();
|
||
|
L1_GC032A_sleep(D_wakeup);
|
||
|
GC032a_L0_uart0_uc('7');
|
||
|
/// s->one_line_ok = D_clear;D_ledb_OFF();
|
||
|
L2_task_go(D_task_GC032A_led);
|
||
|
TTSS_Task_step(D_task_GC032A_led);
|
||
|
///vs /```24.8ms````\__________________________..1.16s...____________________________/````````\___________
|
||
|
///cam_led ```````````\_________________________________________________________/`````````````````\____
|
||
|
if(D_ready == s->vs_ok)///Ϊ�˹ص�
|
||
|
{
|
||
|
s_task_GC032A.vs_ok = D_clear;
|
||
|
D_cam_led_off(); GC032a_L0_uart0_uc('D');
|
||
|
L2_task_go(D_task_GC032A_wait);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_wait);////>>>>>>>>>>>>>>>>>>>>>>>---
|
||
|
///��������Ҫ����
|
||
|
|
||
|
if(D_ready == s->line_get)
|
||
|
{DL0_WDT();//
|
||
|
s->line_get = D_clear;
|
||
|
/// 1.standby
|
||
|
/// D_cam_led_off();
|
||
|
if(D_ON == s->line_en)
|
||
|
{
|
||
|
GC032a_L0_uart0_uc(0xfe);
|
||
|
GC032a_L0_uart0_uc(0xfd);
|
||
|
D_send_us(DR_pclk_n);
|
||
|
//D_send_us(s->lines);
|
||
|
L2_task_go(D_task_GC032A_send_line);
|
||
|
}else
|
||
|
{
|
||
|
L2_task_go(D_task_GC032A_cal);
|
||
|
}
|
||
|
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_send_line);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
L0_uart0_sendArraylong(s->buf,0,199);
|
||
|
L2_task_go(D_task_GC032A_send2);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_send2);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
L0_uart0_sendArraylong(s->buf,200,399);
|
||
|
L2_task_go(D_task_GC032A_send3);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_send3);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
L0_uart0_sendArraylong(s->buf,400,599);
|
||
|
L2_task_go(D_task_GC032A_send4);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_send4);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
L0_uart0_sendArraylong(s->buf,600,639);
|
||
|
L2_task_go(D_task_GC032A_send5);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_send5);
|
||
|
if(D_uart0_free())
|
||
|
{
|
||
|
// 'fe','fd','fd','fc'
|
||
|
// GC032a_L0_uart0_uc(0xfd);
|
||
|
// GC032a_L0_uart0_uc(0xfc);
|
||
|
L2_task_go(D_task_GC032A_line1);
|
||
|
//L2_task_go(D_task_GC032A_sleep);
|
||
|
}
|
||
|
|
||
|
TTSS_Task_step(D_task_GC032A_line1)
|
||
|
for(gRccUs03 = 1;gRccUs03 < 568;gRccUs03 ++)
|
||
|
{
|
||
|
if((s->buf[gRccUs03 - 1] == 0)&&
|
||
|
(s->buf[gRccUs03] == 1))//// _/``������
|
||
|
{
|
||
|
if(s->buf[gRccUs03 + 1] == 0)
|
||
|
{//_/`\_ ������Ҫ����
|
||
|
|
||
|
}else
|
||
|
{// ___/````�����ؿ�ʼ�ߵ�ƽ
|
||
|
s->up_point = gRccUs03;
|
||
|
}
|
||
|
}else if((s->buf[gRccUs03 - 1] == 1)&&
|
||
|
(s->buf[gRccUs03] == 0))//// ``\_ �½���
|
||
|
{
|
||
|
s->down_point = gRccUs03;
|
||
|
|
||
|
}else
|
||
|
{
|
||
|
|
||
|
}
|
||
|
}
|
||
|
L2_task_go(D_task_GC032A_line2);
|
||
|
|
||
|
TTSS_Task_step(D_task_GC032A_line2)
|
||
|
|
||
|
D_send_us(s->up_point);
|
||
|
D_send_us(s->down_point);
|
||
|
D_send_us(s->down_point - s->up_point);
|
||
|
// DR_pdata_n =0;
|
||
|
// 'fe','fd','fd','fc'
|
||
|
GC032a_L0_uart0_uc(0xfd);
|
||
|
GC032a_L0_uart0_uc(0xfc);
|
||
|
if(D_ON == s->cal_en)
|
||
|
{
|
||
|
L2_task_go(D_task_GC032A_cal);
|
||
|
}else
|
||
|
{
|
||
|
L2_task_go(D_task_GC032A_sleep);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_cal)
|
||
|
|
||
|
|
||
|
GC032a_L0_uart0_uc('8');//2.1ms
|
||
|
L2_task_go(D_task_GC032A_sleep);
|
||
|
|
||
|
|
||
|
TTSS_Task_step(D_task_GC032A_sample);
|
||
|
///20181007�������Գ� �ֶε�led ��ͨ��vs �ض� ���Ƿ��ֲ��õ���
|
||
|
///������ʱ��led��������
|
||
|
D_cam_led_on();GC032a_L0_uart0_uc('`');
|
||
|
L2_task_go(D_task_GC032A_sleep);
|
||
|
// L1_task_Tdelay(D_Tdelay_500ms+6);
|
||
|
TTSS_Task_step(D_task_GC032A_sleep);
|
||
|
/// �յ��ⲿ����run�� ��������˯��״̬ �����Ĵ���
|
||
|
////CAL 10MS 433 10MS �ܹ�20ms / 1160ms/vs ȡ��������10ms
|
||
|
/////1160-10 - 20 = 1130ms
|
||
|
/// GC032a_L0_uart0_uc(0x88);
|
||
|
if(D_run == s->run)
|
||
|
{
|
||
|
GC032a_L0_uart0_uc('9');//2.1ms
|
||
|
L2_task_go(D_task_GC032A_led);
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
}else
|
||
|
{
|
||
|
D_cam_led_off();
|
||
|
L1_GC032A_sleep(D_sleep);
|
||
|
L2_task_go(0);
|
||
|
}
|
||
|
///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
TTSS_Task_end();
|
||
|
}
|
||
|
|
||
|
#else
|
||
|
|
||
|
///// get
|
||
|
void L2_task_GC032A_handle(struct _s_task_GC032A_ *s)
|
||
|
{
|
||
|
|
||
|
TTSS_Task_init();
|
||
|
//PWDN�������ͣ�0 -- ����������1 -- ���ߣ�
|
||
|
L0_GC032A_standby();
|
||
|
L0_uart0_uc('2');
|
||
|
L2_task_go(D_task_GC032A_init_DVDD);
|
||
|
TTSS_Task_step(D_task_GC032A_init_DVDD);
|
||
|
L0_GC032A_work();
|
||
|
//IOVDD�ϵ磬����ʱ50us���ϣ�
|
||
|
D_cam_DVDD_on();
|
||
|
// L0_uart0_uc('3');
|
||
|
L2_task_go(D_task_GC032A_init_AVDD);
|
||
|
//L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
TTSS_Task_step(D_task_GC032A_init_AVDD);
|
||
|
//AVDD28�ϵ磬����ʱ0us����
|
||
|
D_cam_AVDD_on();
|
||
|
L0_uart0_uc('4');
|
||
|
L2_task_go(D_task_GC032A_init_pwdn);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn);
|
||
|
//�ṩ032AϵͳƵ��
|
||
|
/// L0_MCLKO_init(D_ON);
|
||
|
//L0_uart0_uc('n');
|
||
|
//PWDN�������ߣ���ʱ������
|
||
|
L0_GC032A_standby();DL0_WDT();//
|
||
|
L2_task_go(D_task_GC032A_init_pwdn_wait);
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
TTSS_Task_step(D_task_GC032A_init_pwdn_wait);
|
||
|
L0_GC032A_work();
|
||
|
GC032a_L0_uart0_uc('5');/// Lc_delay_ms(20);
|
||
|
gRccUs03 = 0;
|
||
|
// L0_GC032A_write(GC6133_init_reg_tbl[gRccUs03][0],GC6133_init_reg_tbl[gRccUs03][1]);///
|
||
|
L2_task_go(D_task_GC032A_write_reg);
|
||
|
//L2_task_go(0);
|
||
|
L1_task_Tdelay(D_Tdelay_10ms);
|
||
|
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_500ms);
|
||
|
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();//
|
||
|
GC032a_L0_uart0_uc('6');
|
||
|
L2_task_go(D_task_GC032A_start_time);
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
///------------------------------------------------------cam init over
|
||
|
|
||
|
////�ȴ� �����������������Ź���
|
||
|
TTSS_Task_step(D_task_GC032A_start_time);
|
||
|
D_cam_led_on();D_VSYNCS_open();
|
||
|
L1_GC032A_sleep(D_wakeup);
|
||
|
GC032a_L0_uart0_uc('7');
|
||
|
/// s->one_line_ok = D_clear;D_ledb_OFF();
|
||
|
L2_task_go(D_task_GC032A_led);
|
||
|
TTSS_Task_step(D_task_GC032A_led);
|
||
|
///vs /```24.8ms````\__________________________..1.16s...____________________________/````````\___________
|
||
|
///cam_led ```````````\_________________________________________________________/`````````````````\____
|
||
|
if(D_ready == s->vs_ok)///Ϊ�˹ص�
|
||
|
{
|
||
|
s_task_GC032A.vs_ok = D_clear;
|
||
|
D_cam_led_off(); GC032a_L0_uart0_uc('_');
|
||
|
L2_task_go(D_task_GC032A_wait);
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_wait);////>>>>>>>>>>>>>>>>>>>>>>>---
|
||
|
///��������Ҫ����
|
||
|
if(1 == s->line_get)
|
||
|
{DL0_WDT();//
|
||
|
s->line_get = 0;
|
||
|
L2_task_go(D_task_GC032A_cal);//// �����
|
||
|
}
|
||
|
TTSS_Task_step(D_task_GC032A_cal);
|
||
|
///����һ�� line������
|
||
|
///D_txd4_wakeup();
|
||
|
///GC032a_L0_uart0_uc(0xd); GC032a_L0_uart0_uc(0xa);//
|
||
|
s->buf[D_pclk_per_hs + 1] =s->buf[30];
|
||
|
///GC032a_L0_uart0_uchex(s->buf[D_pclk_per_hs + 1]);
|
||
|
gRccUs04 = 0;
|
||
|
for(gRccUs03 = 0;gRccUs03 < D_pclk_per_hs_2;gRccUs03 ++)
|
||
|
{ //s->buf[gRccUs03] = 0x10;
|
||
|
//debug ���� ��ʾ��ǰ�յ�������
|
||
|
//L0_uart0_uc(s->buf[gRccUs03]);
|
||
|
if(s->buf[gRccUs03] >= 0x10)
|
||
|
{
|
||
|
s->buf[gRccUs03] -= 0x10;
|
||
|
}
|
||
|
s->buf[gRccUs03] >>= 1;
|
||
|
gRccUs04 += s->buf[gRccUs03];
|
||
|
}
|
||
|
gRccUs04 >>= 2;//gRccUs04 >>= 4;
|
||
|
TS_paer_value.r123.paperNum = gRccUs04;
|
||
|
///GC032a_L0_uart0_uchex((unsigned char)(gRccUs04>>8));
|
||
|
s_task_GC032A.cal_ok = D_ready;
|
||
|
|
||
|
L2_task_go(D_task_GC032A_sample);/// ����������ʱ����ʼ������
|
||
|
L1_task_Tdelay(D_Tdelay_300ms); //700=1a 600=1e 500 21 400 25 300 26
|
||
|
|
||
|
TTSS_Task_step(D_task_GC032A_sample);
|
||
|
///20181007�������Գ� �ֶε�led ��ͨ��vs �ض� ���Ƿ��ֲ��õ���
|
||
|
///������ʱ��led��������
|
||
|
D_cam_led_on();GC032a_L0_uart0_uc('`');
|
||
|
L2_task_go(D_task_GC032A_sleep);
|
||
|
// L1_task_Tdelay(D_Tdelay_500ms+6);
|
||
|
TTSS_Task_step(D_task_GC032A_sleep);
|
||
|
/// �յ��ⲿ����run�� ��������˯��״̬ �����Ĵ���
|
||
|
////CAL 10MS 433 10MS �ܹ�20ms / 1160ms/vs ȡ��������10ms
|
||
|
/////1160-10 - 20 = 1130ms
|
||
|
/// GC032a_L0_uart0_uc(0x88);
|
||
|
if(D_run == s->run)
|
||
|
{
|
||
|
GC032a_L0_uart0_uc('r');//2.1ms
|
||
|
L2_task_go(D_task_GC032A_led);
|
||
|
}else
|
||
|
{
|
||
|
D_cam_led_off();
|
||
|
L1_GC032A_sleep(D_sleep);
|
||
|
L2_task_go(0);
|
||
|
}
|
||
|
///<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
|
||
|
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);
|
||
|
/// D_cam_AVDD_off();
|
||
|
// D_cam_led_off();
|
||
|
}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);
|
||
|
/// D_cam_led_on();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#if 10
|
||
|
void L3_GC032A_fun(U8 *pPara)
|
||
|
{
|
||
|
|
||
|
|
||
|
}
|
||
|
#else
|
||
|
|
||
|
//// fe 01 reg data 0cx
|
||
|
/// Ac 01 02 03 ocr ---bsp_debug.c
|
||
|
/// 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);
|
||
|
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);
|
||
|
L0_uart0_uc(p->R2);
|
||
|
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;
|
||
|
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);
|
||
|
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);
|
||
|
L0_uart0_uc(p->cmd);
|
||
|
L0_uart0_uc(p->R2);
|
||
|
L0_uart0_uc(p->R3);
|
||
|
L0_uart0_uc('G');
|
||
|
for(i = 0;i < p->R3;i++)
|
||
|
{
|
||
|
L0_uart0_uc(val[i]);
|
||
|
}
|
||
|
break;
|
||
|
//��ȡ����ͷ���ò���
|
||
|
case 0x35:
|
||
|
L0_GC032A_standby();// led 17.1-16.9ma standby 6.2ma
|
||
|
L0_uart0_uc(0x31);
|
||
|
break;
|
||
|
case 0x36:
|
||
|
/// �˳�standby:
|
||
|
L0_GC032A_work();
|
||
|
L0_uart0_uc(0x30);
|
||
|
break;
|
||
|
|
||
|
|
||
|
****************************/
|
||
|
|
||
|
default:
|
||
|
break;
|
||
|
};
|
||
|
}
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
#if 0
|
||
|
FE 02 88 15 10 13 11 15 11 16 12 14 11 15 12 16 12 16 14 17 13 17 13 16 13 16 12 16 13 16 12 18
|
||
|
14 15 12 15 13 15 12 16 14 15 13 15 12 15 13 16 14 18 14 17 13 16 10 16 15 1A 15 22 2D 3A 3F 47
|
||
|
41 53 5E 63 65 69 6C 6F 71 7A 72 73 75 7A 7B 7E 7D 82 85 8B 8F 90 8F 93 96 9A 9D 9A 97 98 96 99
|
||
|
9A 9B 9A 9C 9E 9F 9F 9D 9A 9A 99 9C 9B 9B 9A 9A 9B 9C 9D 9F 9F A0 A1 A2 A3 A2 A2 A3 A1 A3 A4 A4
|
||
|
A4 A4 A3 A3 A2 A2 A3 A5 A6 A7 A8 A7 A6 A6 A5 A6 A6 A8 AA AA AA AA AA AB AB AB AC AC AB AC AC AD
|
||
|
AF AE AD AD AC AC AB AC AC AD AD AE AE AE AF AD AE AE AD AE AE AE AE AE AF AF AF AF AF AF B0 B1
|
||
|
B1 B1 B2 B1 B1 B1 B1 B1 B1 B2 B2 B2 B3 B2 B2 B2 B3 B3 B3 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B4 B5
|
||
|
B4 B5 B6 B5 B5 B4 B4 B4 B3 B4 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B5 B6 B6 B5 B6 B6 B6 B6 B6 B6 B6
|
||
|
B6 B6 B6 B6 B6 B6 B6 B6 B7 B6 B6 B7 B6 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7
|
||
|
B8 B7 B7 B8 B8 B7 B8 B8 B7 B8 B9 B8 B8 B8 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B7 B8 B7 B7 B8 B8
|
||
|
B8 B8 B8 B8 B8 B8 B7 B7 B7 B7 B8 B8 B9 B8 B9 B8 B8 B8 B8 B7 B7 B7 B7 B7 B8 B8 B8 B8 B8 B8 B8 B8
|
||
|
B9 B8 B8 B8 B8 B9 BA B8 B8 B8 B7 B8 B8 B8 B8 B8 B8 B8 B9 B8 B7 B7 B7 B7 B7 B7 B6 B6 B7 B7 B7 B7
|
||
|
B7 B7 B7 B8 B8 B8 B8 B8 B8 B8 B8 B8 B9 B9 B9 B8 B9 B8 B8 B9 BA B9 B8 B8 B8 B8 B9 B8 B9 B8 B8 B8
|
||
|
B8 B8 B9 B9 B8 B9 B9 B9 B9 B8 B8 B8 B8 B8 B8 B8 B8 B8 B8 B8 B8 B9 B9 B8 B9 B9 B9 B9 B9 B9 BA B9
|
||
|
B9 B9 B9 B9 B8 B9 B9 B9 B9 B9 B9 B9 B8 B9 B9 B9 B9 B9 B9 B9 B9 B9 BB B9 B9 B9 B9 B9 B9 B9 BA BA
|
||
|
BB B9 B8 B8 B8 B8 B8 B9 B9 BA BA B9 BA B9 B9 B9 B9 B9 B8 B8 B8 B8 B9 B9 B9 B9 BA BA BB B9 B9 B9
|
||
|
B9 B9 B9 B9 B9 B9 B9 B9 B9 B9 B9 B9 BA B9 B9 B9 B9 BA BA BB BB BA BB BA B9 B9 B9 B9 B9 B9 B9 BA
|
||
|
BB BA BA BA BA B9 B8 B8 B8 B8 B8 B9 B9 BA BB BB BB BA BA B9 B9 B9 B9 B9 BA fd fc
|
||
|
|
||
|
|
||
|
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|