亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? buxx_adsc.c

?? bu1566dsp芯片用來處理ov7660或其他30萬攝像模組的圖像預覽.圖像拍照(jpeg壓縮)
?? C
?? 第 1 頁 / 共 5 頁
字號:
            data_write(OVL_CNT, 0x0012);
            data_write(OVL_FRMST1, (((M_LCD_WSIZE - 32) / 2) << 8) | ((M_LCD_HSIZE - 32) / 2)); //95,60
        }

    reg_write(INDEX, OVL_CNT);
    if ((reg_read(REG) & 0x0002) != 0) //Overlay is on
    {
        if (wait_time >= 1000)
        {
            wait_time = 0;
            reg_write(INDEX, OVL_FRMST1);
            memcnt_data = reg_read(REG);

            if (x_step == 1)
            {
                if (((memcnt_data & 0xff00) >> 8) + 0x0020 >= M_LCD_WSIZE)
                    x_step = -1;
            }
            else
            {
                if ((memcnt_data & 0xff00) <= 0x0000)
                    x_step = 1;
            }

            if (y_step == 1)
            {
                if ((memcnt_data & 0x00ff) + 0x0021 > M_LCD_HSIZE)
                    y_step = -1;
            }
            else
            {
                if ((memcnt_data & 0x00ff) <= 0x0000)
                    y_step = 1;
            }


            reg_write(REG, memcnt_data + (x_step << 8) + y_step);
        }
        else
        {
            wait_time++;
        }
    }




    
    data_write(0xb0,p_exovl->ovlnum);// type, transparent,overlay1&2
    data_write(0xb1,((p_exovl->xsize<<8)|p_exovl->ysize));//size=
    u8OvlNum=p_exovl->ovlnum&0x0003;

    if(u8OvlNum==0x0002)
    {
        u16Temp=(p_exovl->fmstx<<8)|p_exovl->fmsty;
        data_write(0xb2,u16Temp);//X start &Y start in the frame
        u16Temp=(p_exovl->ovlstx<<8)|p_exovl->ovlsty;
        data_write(0xb7,u16Temp);// X start &Y start in the overlay memory
        u16Temp=(p_exovl->ovledx<<8)|p_exovl->ovledy;
        data_write(0xb8,u16Temp);// X end &Y end in the overlay memory
    }

    else if(u8OvlNum==0x0001)
    {
        data_write(0xb3,((p_exovl->fmstx<<8)|p_exovl->fmsty));// X start &Y start in the frame 
        data_write(0xb9,((p_exovl->ovlstx<<8)|p_exovl->ovlsty));// X start &Y start in the overlay memory
        data_write(0xba,((p_exovl->ovledx<<8)|p_exovl->ovledy)); // X end &Y end in the overlay memory	
    }

    data_write(0xbb,p_exovl->ovl_trans);//transparent coclor
    data_write(0xbc,p_exovl->ovl_trmsk);//transparent color mask
    data_write(0xbd,p_exovl->front_color);//front color
    data_write(0xbe,p_exovl->back_color);//background color

    data_write(0xb5,((p_exovl->mem_adr_ovr_stx)<<8|p_exovl->mem_adr_ovr_sty));// MEM_ADR_OVL_ST 
    data_write(0xb6,((p_exovl->mem_adr_ovr_edx)<<8|p_exovl->mem_adr_ovr_edy));// (edx,edy)=(,)

    reg_write(INDEX, 0xb4);
    for (cnt = 0; cnt <(p_exovl->xsize)*(p_exovl->ysize) ; cnt++)
    {
        reg_write( REG, *ovl_data);					//RGB Data are written
        ovl_data++;
    }

}
*/    
//-----------------------------------------------------------------------------
//                            interrupt dispose
//-----------------------------------------------------------------------------
void __irq aDSC_int_disp(void)
{
#if !defined	BUXX_POLLING
    UINT16 idx_push;
    UINT16 reg_data;

    switch (gl_dsc_status)
    {
    case sJPEGDECODE:
    case sLEDMODE:
        //no dispose
        break;
    case sRINGBUFFER:
    case sHOSTJPEGDEC://KRIS ADD 2006-3-6 16:20
        idx_push = reg_read(INDEX);

        reg_data = data_read(JPG_INTST);
        if (BUSACCESS_BIT == 8 && hostcnt_bitread(bHOST_END) != 0)
        {
            reg_data =
                ((reg_data & 0xff00) >> 8) | ((reg_data & 0x00ff) << 8);
        }

        if (reg_data & bJE_RING_INT)
        {                       // JE_RING_INT
            bit_write(JPG_INTST, bJE_RING_INT, LOW);    // JE_RING_INT clear
            gl_bank_chk++;
        }
        else if (reg_data & bJE_ED_INT)
        {
            bit_write(JPG_INTST, bJE_ED_INT, LOW);      // JE_ED_INT clear
            gl_je_end_chk++;
        }
        if (reg_data & bJD_ED_INT)//Kris add
        {
            bit_write(JPG_INTST, bJD_ED_INT, LOW);      // JD_ED_INT clear
            gl_jd_end_chk++;
        }
        reg_write(INDEX, idx_push);
        break;
    default:
        idx_push = reg_read(INDEX);
        mode_change(sREADY);

        reg_write(INDEX, idx_push);
        break;

    }
    gl_check_int = 1;
 
 #if 1   
//  INT=p0.16
 EXTINT = 0x01;  //清除EINT0 中斷標志
  VICVectAddr = 0x00;   //通知中斷結?

#else 
//  INT=p0.20
  
  VICVectAddr = 0;			// 向量中斷結束
 EXTINT = 1<<3;			// 清除p0.20 EINT3中斷標志,1<<3 等價于 0x08
#endif

#endif

}

//-----------------------------------------------------------------------------
//                             filter function setup
//-----------------------------------------------------------------------------
int aDSC_filter_set(const char *format, ...)
{
    int i;
    va_list ap;
    int filter = 0xff;
    char *cmp[] =
        { "disable", "thd", "gray", "sepia", "emboss", "edge1", "edge2",
        "nega", "camyd" };
    int fil_sel[] =
        { sDISABLE, sTHD, sGRAY, sSEPIA, sEMBOSS, sEDGE1, sEDGE2, sNEGA,
        sCAMYD };
    int temp1, temp2;
    UINT16 reg_data;
    int err_code = 0;

    reg_data = aDSC_Quit_Preview();

    va_start(ap, format);

    for (i = 0; i < 10; i++)
    {
        if (strcmp(format, cmp[i]) == 0)
        {
            filter = fil_sel[i];
            break;
        }
    }

    switch (filter)
    {
    case sDISABLE:
        data_write(CAMFLT, sDISABLE);   // IDX_ADR : 0x11 no processing
        break;
    case sTHD:
        data_write(CAMFLT, sTHD);       // IDX_ADR : 0x11 gradate in two grade
        temp1 = va_arg(ap, int);
        if (temp1 > maxFLTTHD)
            err_code = 0x2001;
        data_write(FLTTHD, temp1);      // IDX_ADR : 0x12
        break;
    case sGRAY:
        data_write(CAMFLT, sGRAY);      // IDX_ADR : 0x11 gray scale
        break;
    case sSEPIA:
        data_write(CAMFLT, sSEPIA);     // IDX_ADR : 0x11 sepia
        temp1 = va_arg(ap, int);
        if (temp1 > maxSEPIAR)
            err_code = 0x2002;
        temp2 = va_arg(ap, int);
        if (temp2 > maxSEPIAB)
            err_code = 0x2003;
        data_write(FLTSEP, (temp1 << 8) | temp2);       // IDX_ADR : 0x13 SEPIAR = 32d, SEPIAB = -16d
        temp1 = va_arg(ap, int);
        if (temp1 > maxSEPRNG)
            err_code = 0x2004;
        data_write(SEPRNG, temp1);      // IDX_ADR : 0x14
        break;
    case sEMBOSS:
        data_write(CAMFLT, sEMBOSS);    // IDX_ADR : 0x11 emboss
        temp1 = data_read(FLTCOEF) & 0xff00;
        temp2 = va_arg(ap, int);
        if (temp2 > maxFLTEBS)
            err_code = 0x2005;
        data_write(FLTCOEF, temp1 | temp2);     // IDX_ADR : 0x15
        break;
    case sEDGE1:
        data_write(CAMFLT, sEDGE1);     // IDX_ADR : 0x11 edge sampling1
        temp1 = va_arg(ap, int);
        if (temp1 > maxFLTTHD)
            err_code = 0x2006;
        data_write(FLTTHD, temp1);      // IDX_ADR : 0x12 Threshold = 0x01
        temp1 = data_read(FLTCOEF) & 0x00ff;
        temp2 = (va_arg(ap, int));
        if (temp2 > maxFLTEDG1)
            err_code = 0x2007;
        data_write(FLTCOEF, temp1 | (temp2 << 8));      // IDX_ADR : 0x15
        break;
    case sEDGE2:
        data_write(CAMFLT, sEDGE2);     // IDX_ADR : 0x11 edge sampling2
        temp1 = va_arg(ap, int);
        if (temp1 > maxFLTEDG2)
            err_code = 0x2008;
        temp2 = va_arg(ap, int);
        if (temp2 > maxEDG2OFS)
            err_code = 0x2009;
        data_write(FLTEDG2, temp1 << 8 | temp2);        // IDX_ADR : 0x16
        break;
    case sNEGA:
        data_write(CAMFLT, sNEGA);      // IDX_ADR : 0x11 negative
        break;
    case sCAMYD:
        temp1 = va_arg(ap, int);
        if (temp1 > maxCAMYD)
            err_code = 0x200a;
        data_write(CAMYD, temp1);
        break;
    default:
        err_code = 0x2000;
        data_write(CAMFLT, sDISABLE);   // IDX_ADR : 0x11 no processing
        break;
    }

    va_end(ap);
    if (reg_data == sNVIEWER)
        mode_change(sNVIEWER);

    if (err_code)
        DEBUG_WRITE((0, 0, "%x", err_code));
    return (err_code);

}



//-----------------------------------------------------------------------------
//                               I2C Dispose
//-----------------------------------------------------------------------------
int aDSC_i2c_set(const UINT16 seri_devtype, const UINT16 seri_devadr,
                 const UINT16 seri_2ndadr, const UINT16 seri_dat,
                 const UINT16 peri_sdc, const UINT16 seri_rw)
{
    int busy_flag = 1;
    int err_code = 0;

    if (seri_devadr > maxSERI_DEVADR)
        err_code = 0x2100;
    if (seri_2ndadr > maxSERI_2NDADR)
        err_code = 0x2101;
    if (seri_dat > maxSERI_DAT)
        err_code = 0x2102;
    if (peri_sdc > maxPERI_SDC)
        err_code = 0x2103;

    if (err_code)
    {
        DEBUG_WRITE((0, 0, "%x", err_code));
        return err_code;
    }

    data_write(SERIDEVADR,
               sSERI_HZ | sSERI_PULL_ON | seri_devtype | sSERI_ENABLE |
               seri_devadr);
    data_write(SERI2NDADR, seri_2ndadr);
    data_write(SERICNT, (seri_dat << 8) | (peri_sdc << 4) | seri_rw);

    bit_write(SERICNT, bSERI_ST, HIGH); //serial transfer start
    while (busy_flag)
    {                           // SERI_BSY偺億乕儕儞僌
        busy_flag = bit_read(SERICNT, bSERI_BSY);
    }

    wait(1);                    //Tbuf

#if 0
    if (bit_read(SERICNT, bACK_STAT))
        err_code = 0x2104;
    if (err_code)
    {
        DEBUG_WRITE((0, 0, "%x", err_code));
        return err_code;
    }
#endif

    return 0;
}



//-----------------------------------------------------------------------------
//                      frame memory write(rgb565 data)
//-----------------------------------------------------------------------------
int aDSC_fmemory_write_rgb565(const UINT16 * rgb_data, const UINT16 st_x,
                              const UINT16 st_y)
{
    int cnt, write_count;
    UINT16 xsize, ysize;
    int err_code = 0;

    aDSC_Quit_Preview();

    xsize = *rgb_data;
    rgb_data++;
    ysize = *rgb_data;
    rgb_data++;

    bit_write(MEMCNT, bINCMTH | bADRINC, LOW);  //rectangle increment丄auto increment off
    err_code =
        mem_adrst_ed_set(st_x, st_y, st_x + xsize - 1, st_y + ysize - 1);
    if (err_code)
        err_code |= 0x3000;

    bit_write(MEMCNT, bINCMTH | bADRINC, HIGH); //rectangle increment丄auto increment on

    write_count = xsize * ysize;

    mem_acs_write_st(MEMACS_RGB);
    for (cnt = 0; cnt < write_count; cnt++)
    {
        reg_write(REG, *rgb_data);      //RGB Data are written
        rgb_data++;
    }

    bit_write(MEMCNT, bINCMTH | bADRINC, LOW);  //rectangle increment丄auto increment on

    if (err_code)
        DEBUG_WRITE((0, 0, "%x", err_code));
    return (err_code);

}

int aDSC_ExOvlMemory_write_rgb565(const UINT16 * rgb_data)
{
    int cnt, write_count;
    UINT16 xsize, ysize;
    int err_code = 0;

 //   aDSC_Quit_Preview();

    xsize = *rgb_data;
    rgb_data++;
    ysize = *rgb_data;
    rgb_data++;

    data_write(MEM_ADR_OVL_ST,0x0000);
    data_write(MEM_ADR_OVL_ED,((xsize-1)<<8)|(ysize-1));

    bit_write(MEMCNT, bINCMTH | bADRINC, HIGH); //rectangle increment丄auto increment on

    write_count = xsize * ysize;

    mem_acs_write_st(MEMACS_OVL);

    for (cnt = 0; cnt < write_count; cnt++)
    {
        reg_write(REG, *rgb_data);      //RGB Data are written
        rgb_data++;
    }

    bit_write(MEMCNT, bINCMTH | bADRINC, LOW); //rectangle increment丄auto increment off

    return err_code; 
}

int aDSC_fmemory_write_rgb565_2(const UINT16 * rgb_data, const UINT16 st_x,
                              const UINT16 st_y, const UINT16 xsize, const UINT16 ysize )
{
    int cnt, write_count;
    int err_code = 0;

    aDSC_Quit_Preview();

    bit_write(MEMCNT, bINCMTH | bADRINC, LOW);  //rectangle increment丄auto increment off
    err_code =
        mem_adrst_ed_set(st_x, st_y, st_x + xsize - 1, st_y + ysize - 1);
    if (err_code)
        err_code |= 0x3000;

    bit_write(MEMCNT, bINCMTH | bADRINC, HIGH); //rectangle increment丄auto increment on

    write_count = xsize * ysize;

    mem_acs_write_st(MEMACS_RGB);
    for (cnt = 0; cnt < write_count; cnt++)
    {
        reg_write(REG, *rgb_data);      //RGB Data are written
        rgb_data++;
    }

    bit_write(MEMCNT, bINCMTH | bADRINC, LOW);  //rectangle increment丄auto increment on

    if (err_code)
        DEBUG_WRITE((0, 0, "%x", err_code));
    return (err_code);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国一区二区三区| 欧美在线观看18| 在线免费观看一区| 精品国产污污免费网站入口 | 成人av小说网| 91精品国产丝袜白色高跟鞋| 亚洲欧洲成人精品av97| 国内成+人亚洲+欧美+综合在线| 日本黄色一区二区| 国产精品第五页| 欧美性淫爽ww久久久久无| 久久久久久久久久美女| 免费一级欧美片在线观看| 91精品福利视频| 亚洲青青青在线视频| 大白屁股一区二区视频| 日韩精品一区二区三区蜜臀| 亚洲第一av色| 欧美色图激情小说| 一区二区三区高清在线| 91视频国产资源| 椎名由奈av一区二区三区| 成人免费视频一区二区| 中文字幕av一区二区三区高| 国内外成人在线视频| 日韩欧美亚洲国产另类 | 中文字幕一区二区三区乱码在线| 久久99国产精品久久99| 精品美女在线观看| 国产综合久久久久影院| 精品粉嫩超白一线天av| 蜜乳av一区二区三区| 日韩三级伦理片妻子的秘密按摩| 男人的j进女人的j一区| 日韩一区二区三区四区| 精品一区二区三区欧美| 亚洲精品一区二区在线观看| 国产精品一区二区黑丝| 中文无字幕一区二区三区 | 蜜臀av在线播放一区二区三区| 在线成人av网站| 美女在线视频一区| 国产三区在线成人av| 成人免费看视频| 亚洲人成在线播放网站岛国 | 亚洲一区免费观看| 欧美日韩三级视频| 久久精品99国产国产精| 日本一区二区三区电影| 色天天综合色天天久久| 午夜电影久久久| 精品国产精品网麻豆系列| 国产成人av一区二区三区在线| 一色屋精品亚洲香蕉网站| 色婷婷综合视频在线观看| 日本欧美久久久久免费播放网| 2023国产精品视频| 不卡的看片网站| 午夜精品久久一牛影视| 久久久噜噜噜久噜久久综合| 色综合天天综合网天天狠天天| 舔着乳尖日韩一区| 国产日韩欧美综合在线| 欧美性生活久久| 韩国精品免费视频| 一区二区三区免费看视频| 欧美电影免费观看高清完整版在线观看 | 理论片日本一区| 国产精品久久一级| 欧美一区三区二区| 97se亚洲国产综合在线| 免费亚洲电影在线| 亚洲欧美国产77777| 欧美成人性福生活免费看| www.亚洲色图.com| 青青草97国产精品免费观看无弹窗版| 欧美国产一区视频在线观看| 在线播放欧美女士性生活| 成人免费高清在线| 美女视频黄免费的久久 | 久久综合久久综合九色| 欧美视频在线观看一区| 成人免费视频caoporn| 欧美a级一区二区| 亚洲伦理在线精品| 国产目拍亚洲精品99久久精品| 欧美日韩国产三级| 99国产精品久久久久久久久久久| 久久99精品久久只有精品| 亚洲午夜精品在线| 成人欧美一区二区三区| 国产欧美精品一区aⅴ影院| 日韩一级片网址| 色综合久久天天| av电影一区二区| 国产精品91xxx| 久久91精品久久久久久秒播| 日日噜噜夜夜狠狠视频欧美人| 亚洲欧美激情小说另类| 国产精品久久久久久久久久免费看| 欧美本精品男人aⅴ天堂| 337p亚洲精品色噜噜噜| 欧美午夜精品一区二区蜜桃| 一本色道久久加勒比精品| 91在线播放网址| 97久久精品人人做人人爽50路| 国产成人亚洲综合色影视| 国产精品中文字幕日韩精品| 精品一区二区三区在线播放视频| 日本aⅴ亚洲精品中文乱码| 亚欧色一区w666天堂| 亚洲五码中文字幕| 婷婷综合五月天| 日本一不卡视频| 奇米在线7777在线精品| 美女视频一区在线观看| 久久精工是国产品牌吗| 狠狠色伊人亚洲综合成人| 国产一区二区在线视频| 国产成人在线免费观看| av日韩在线网站| 色婷婷一区二区| 欧美日本视频在线| 欧美一级在线视频| 久久免费午夜影院| 国产精品久久久久一区二区三区| 中文字幕一区二| 亚洲国产日日夜夜| 免费观看成人鲁鲁鲁鲁鲁视频| 精品一区二区三区不卡| 国产91丝袜在线播放| 一本色道综合亚洲| 欧美福利视频导航| 久久综合精品国产一区二区三区| 国产日韩欧美电影| 亚洲欧洲精品天堂一级| 亚洲mv大片欧洲mv大片精品| 男人的天堂亚洲一区| 国产999精品久久久久久| 91在线观看下载| 3d成人h动漫网站入口| 久久婷婷综合激情| 日韩美女视频一区| 日本在线不卡视频| www.综合网.com| 欧美三级乱人伦电影| 久久婷婷色综合| 亚洲丝袜美腿综合| 青青草视频一区| 成人av综合一区| 91精品国产乱| √…a在线天堂一区| 日韩不卡一区二区三区| 成人99免费视频| 在线播放/欧美激情| 国产精品久久久久精k8| 秋霞av亚洲一区二区三| 91丨porny丨首页| 精品国产网站在线观看| 亚洲在线中文字幕| 成人午夜伦理影院| 欧美一级二级三级蜜桃| 亚洲男人天堂av网| 韩国av一区二区三区在线观看 | 床上的激情91.| 在线播放日韩导航| 亚洲精品一二三四区| 国产精品乡下勾搭老头1| 宅男噜噜噜66一区二区66| 亚洲视频一区二区免费在线观看 | 91美女福利视频| 久久综合国产精品| 亚洲国产一区在线观看| 北岛玲一区二区三区四区| 亚洲精品在线观| 免费精品视频在线| 欧美日韩一级片网站| 亚洲欧美另类久久久精品| 国产sm精品调教视频网站| 欧美成人video| 奇米影视7777精品一区二区| 欧美日韩一区二区在线观看| 成人免费在线播放视频| 成人午夜碰碰视频| 国产欧美一区二区在线观看| 日本欧美在线看| 欧美一级电影网站| 琪琪久久久久日韩精品| 精品视频一区二区不卡| 亚洲一区二区三区视频在线播放| 91免费版在线| 亚洲视频在线一区二区| 99视频一区二区三区| 成人免费小视频| 色欲综合视频天天天| 亚洲免费高清视频在线| 日本国产一区二区| 亚洲图片欧美视频| 欧美日韩成人高清| 日韩国产一区二|