⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sdrv_putsdimage.c

📁 炬力方案176*132软件源码,适用于AK1025
💻 C
字号:
/*
********************************************************************************
*                       ACTOS
*                  ui dirver show picture
*
*                (c) Copyright 2002-2003, Actions Co,Ld.
*                        All Right Reserved
*
* File   : UI_PutSDImage.msa
* By     : Rcmai
* Version: 1> v1.00     first version     10/17/2003 10:46PM
********************************************************************************
*/
#include "display.h" 
#include "Intrz80.h"            //用到input8();  
#include "Drv_S6B33B0A.h"

//SD_RW sdrw;
//#pragma codeseg(UI_RCODE)

#pragma memory=constseg(BAS_PSDI)
#pragma memory=default

#pragma memory=dataseg(BAD_PSDI)
SD_RW sdrw;
//extern  unsigned char BufPage;
#pragma memory=default

#pragma codeseg(BAC_PSDI)


void Sdrv_PutSDImage(region_t *pic,long int imgddr)
{
    unsigned long cnt;
    WORD cnt1;


    //坐标出了屏幕,则退出
    if(pic->x>Displaylength-1 || pic->y >Displayhight-1 )
    {
        return;
    }

    //显示出屏幕的处理
    if ((pic->height + pic->y) > Displayhight)
    {
        return;
    }
    if (pic->width > Displaylength-pic->x)
    {
        return;
    }

    Hdrv_SetDrawMode(DrawModeH_def);

    Hdrv_SetWindow(pic);    //设定要填入 的 图片的 行、列起始地址,就从这里开始填数据

    cnt = (unsigned long)pic->width * (unsigned long)pic->height * 2;
    cnt1 = 512 - (imgddr%512);//如不是页的开始,先读前面的不整页部分

    sdrw.faddr=imgddr;
    sdrw.srampage=input8(0x05)&0x0f;//(byte)BufPage;    //FRAME BUFFER PAGE
    sdrw.sramaddr = (WORD)DisplayBuffer;
    if (cnt > (unsigned long)cnt1)
    {
        SD_Read((int)&sdrw, cnt1);//把图片数据读出  放到 DisplayBuffer 中
        Hdrv_BuffDataTrans(DisplayBuffer, cnt1);//把显存中的数据搬到LCM中
        cnt -= cnt1;
        sdrw.faddr += cnt1;
    }
    if (cnt == 0)
    {
        return;
    }

    while (cnt > (unsigned long)DisplayBufLen)// 一个显示暂存区的大小
    {
        SD_Read((int)&sdrw, DisplayBufLen);//把图片数据读出
        Hdrv_BuffDataTrans(DisplayBuffer, DisplayBufLen);//把显存中的数据搬到LCM中
        cnt = cnt - (unsigned long)DisplayBufLen;
        sdrw.faddr += DisplayBufLen;
    }
    sdrw.sramaddr = (WORD)DisplayBuffer;
    SD_Read((int)&sdrw, cnt);//把图片数据读出
    Hdrv_BuffDataTrans(DisplayBuffer, cnt);//把显存中的数据搬到LCM中

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -