//////////////////////////////////////////////////////////////////////////// ///@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 ///------------------------------------------------------------------------- /// @version 1.2 /// @author CC /// @date 20180703 /// @note cc_AS_stc02 ////////////////////////////////////////////////////////////////////////////// #include "bsp_cam_isr.h" #ifdef doc_98989 vs /```24.8ms````\_______________________________..1.16s..._____________________________________________/```````````\__________ hs /\————————/\_2.14MS_/\____/\____/\____ ...... __/\____/\____/\__480个__/\____/\____/\____/\————————/\ hs /``\________________________hs______________________/``\ pclk |||||||||||||||||||||||||||||||||||||||||||||||640 #endif ///doc_98989 void L0_VSYNCS_Isr(void) D_SERVE_VS {////找到一帧数据的开头:第一行 ///s_task_GC032A.usHs_count = 0; /// EA = 0; D_LED4_REV(); ts_task_GC032a.HS_max = DR_Hs_count; ///D_PCLK_open(); DR_Hs_count = 0; /// EA = 1; } void L0_HSYNCS_Isr(void) D_SERVE_HS/// using 1 {///hs 下沿有效 //// hs信号的计数在vs有效的时候清零,这样usHs_count=D_row_get就代表 ///EA = 0; ET0 = 0; /// ts_task_GC032a.HS[DR_Hs_count] = ts_task_GC032a.pclk_n; /// ts_task_GC032a.HS[DR_Hs_count] = DR_Hs_count;// /// ts_task_GC032a.pclk_n = 0; // DR_Hs_count ++; ts_task_GC032a.vs_ok = 1; D_LED1_REV();//////// if(0)//// //// 当前一帧画面里面的第D_row_get个hs,也就是一个画面中的第几行数据 if(DR_Hs_count == D_row_get) {///D_P33_REV(); DR_pclk_n = 0; D_PCLK_open(); ET0 = 0; //add by cc }else if(DR_Hs_count == (1+D_row_get)) { D_PCLK_close(); ET0 = 1; ts_task_GC032a.status = 1; ts_task_GC032a.pclk_max = DR_pclk_n; }else { ET0 = 1; } /// EA = 1; } //// 读取不为0x80的数据 //// 放入s_task_GC032A.buf ////D_pclk_per_hs 数量满足后 s_task_GC032A.status = 1; void l0_PCLK_Isr(void) D_SERVE_CLK /// using 1 {///PCLK // D_LED2_REV(); DR_Dat = P2; /////if(DR_Dat != 0X80) { ts_task_GC032a.buf[0][DR_pclk_n] = DR_Dat; DR_pclk_n++;// } ts_task_GC032a.pclk_n ++; } void L0_cam_INT_init(void) { ///D_VSYNCS_open(); D_HSYNCS_open();//BITN_1(INT_CLKO, INT_EX2);//使能INT2中断 D_PCLK_init(); }