liuweiele 发表于 2009-1-14 22:58:07

用S3C44B0X+2.4寸TFT LCD做的万年历功能【恢复】

这是一个用S3C44B0X+2.4寸TFT LCD做的一个日历,目前只实现了以下功能:

1.星期自动调整;

2.平年和闰年自动区分.



本贴被 liuweiele 编辑过,最后修改时间:2009-01-15,00:31:31.

liuweiele 发表于 2009-1-14 23:08:20

在S3C44B0X上的实际运行界面效果:



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_587524.jpg

 (原文件名:IMAG0514.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_587525.jpg

 (原文件名:IMAG0515.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_587526.jpg

 (原文件名:IMAG0516.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_587527.jpg

 (原文件名:IMAG0517.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_587528.jpg

 (原文件名:IMAG0522.jpg) 

liuweiele 发表于 2009-1-14 23:09:28

程序源码:



点击此处下载 ourdev_587544.rar(文件大小:184K) (原文件名:RTC.rar) 

liuweiele 发表于 2009-1-14 23:18:07

LCD驱动文件:



点击此处下载 ourdev_587564.rar(文件大小:3K) (原文件名:LCD_Drv.rar) 

qzzz 发表于 2009-1-15 03:21:27

漂亮!

xiaorunyi 发表于 2009-1-15 07:54:17

很漂亮

armok 发表于 2009-1-15 08:14:41

Cool !

micy 发表于 2009-1-16 14:14:13

不错 用什么软件将BMP转成数组啊?

23yatou 发表于 2009-1-16 15:38:44

真到很好看也~~

但是有个问题想请教下,你的TFT LCD用什么来驱动的呢,我知道S3C44B0 属于ARM7,只能驱动STN屏,不知道你是怎么来做的呢?我看你的程序好像不是用总线方式来驱动的哦,是用了ARM7内部的LCD液晶控制器到寄存器?

请指教~~

23yatou 发表于 2009-1-16 16:08:17

再看了一下,好像用的是总线方式驱动的哇?不知道你的速度快不快呢?

wf361 发表于 2009-1-16 17:18:37

是总线方式。

lbxx135 发表于 2009-1-16 19:16:44

给讲讲怎么做得,非常不错

liuweiele 发表于 2009-1-16 21:50:55

用的是16位i80总线方式驱动,GUI使用了帧缓冲技术,即使是打开半透明效果,用66MHZ的S3C44B0X全屏刷新也完全感觉不到闪烁.



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_590544.jpg

 (原文件名:IMAG0535.jpg) 

liuweiele 发表于 2009-1-16 21:54:16

图标是用Bin2C直接将BMP文件转换.

frls 发表于 2009-1-21 00:15:12

lcd 不错。

km958 发表于 2009-1-21 10:01:52

请教:

用什么开发环境做的啊

非常漂亮!

xullin 发表于 2009-1-21 10:41:02

mark

liuweiele 发表于 2009-1-22 23:48:56

用ADS1.2开发的:



最近增加了中/英两种语言切换功能:



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_599284.jpg

 (原文件名:IMAG0584.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_599285.jpg

 (原文件名:IMAG0560.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_599286.jpg

 (原文件名:IMAG0561.jpg) 



http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_599304.jpg

 (原文件名:IMAG0562.jpg) 





http://cache.amobbs.com/bbs_upload782111/files_11/ourdev_599287.jpg

 (原文件名:IMAG0582.jpg) 





本贴被 liuweiele 编辑过,最后修改时间:2009-01-22,23:52:32.

822690a 发表于 2009-1-23 10:54:01

很羡慕啊 我也有44b0的板 2.4寸淘宝tft屏 不知能不能实现以上你的功能呢

kingofkings 发表于 2009-1-23 11:04:01

以下蓝色文字由版主:kingofkings&nbsp;于:2009-01-23,11:04:01&nbsp;加入。<font color=black>请发贴人注意:本贴放在这分区不合适,即将移走
原来分区:AVR&nbsp;(原ourAVR.com)&nbsp;技术论坛
即将移去的分区:ARM技术论坛
移动执行时间:自本贴发表0小时后
任何的疑问或咨询,请可随时联系站长。谢谢你的支持!</font>

wuqi716 发表于 2009-3-5 18:10:07

不错

fu2008 发表于 2009-3-14 15:34:56

真厉害啊!

zhang-zj 发表于 2009-3-15 11:14:23

有没有硬件资料共享学习?

lbxx135 发表于 2009-3-26 22:55:47

好想学习一下楼主的这个GUI,能发给完整源码吗?

liuweiele 发表于 2009-3-26 23:00:51

这个GUI暂时没有学习资料~

piero918 发表于 2009-6-19 18:06:48

mark

eagle_avr 发表于 2009-7-13 13:56:40

COOL!

xyq4513 发表于 2009-7-24 15:23:51

COOL!终于找到了

liuweiele 发表于 2009-7-24 23:46:25

LS也在做类似的东西?

sun_qq1987 发表于 2009-8-3 23:29:14

不得不说 确实很棒

fy024 发表于 2009-8-3 23:41:41

mark

liuweiele 发表于 2009-8-4 22:04:05

有新东西了~

cxlsky 发表于 2009-8-6 15:48:33

很想知道楼主的GUI怎么弄出来的?!

liuweiele 发表于 2009-8-6 20:32:29

丛最基本的画点,画线函数开始.

lbheibai 发表于 2009-8-16 17:57:48

标志一下,

tgl3721 发表于 2009-8-28 10:26:28

mark

yusufu 发表于 2009-9-13 23:12:18

漂亮。。

Soul.art 发表于 2009-9-14 07:38:01

MARK~~

584388726 发表于 2009-10-12 16:27:45

MARK

isbit 发表于 2009-10-12 19:07:09

mark,gui咋做出来的?

songzi2018 发表于 2009-10-12 19:35:29

请教楼主,为啥我用你给的半透明算法,将两张图alpha混合后,图片靠下部总会出现一些白线?不明白到底是怎么回事?

shangxf 发表于 2009-10-12 20:32:37

liuweiele 发表于 2009-10-12 20:59:04

TO:【41楼】 songzi2018
能不能上传一张图片看一下?

ds444 发表于 2009-10-12 21:46:41

能用1万年就好了

songzi2018 发表于 2009-10-13 15:10:34

谢谢liuweiele,晚上回去上图和程序,硬件环境:友善mini2440
http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_491256.JPG
注意按钮部分,不该有那一条条线 (原文件名:DSC02655.JPG)

http://cache.amobbs.com/bbs_upload782111/files_20/ourdev_491257.JPG
注意图片的下半部,出现不该有的一条条线 (原文件名:DSC02659.JPG)

源码,ADS1.2工程,显示部分在LCD.c中ourdev_491267.rar(文件大小:2.09M) (原文件名:uCos2-2.rar)


手机拍的照片,效果不好,能看个大概,有mini2440+nec3.5板子可以直接将bin通过USB下载到0x30000000处运行;

liuweiele 发表于 2009-10-14 01:19:45

MMU没有设置好

songzi2018 发表于 2009-10-14 09:19:33

to liuweiele:
非常感谢楼主指点,MMU那块我不太懂,请问楼主那块参数该怎么设置;也就是MMU_Init()函数,可以贴一段代码吗?谢谢楼主

songzi2018 发表于 2009-10-14 10:51:24

这是我的设置:
void MMU_Init(void)
{
    int i,j;
    //========================== IMPORTANT NOTE =========================
    //The current stack and code area can't be re-mapped in this routine.
    //If you want memory map mapped freely, your own sophiscated MMU
    //initialization code is needed.
    //===================================================================

    MMU_DisableDCache();
    MMU_DisableICache();

    //If write-back is used,the DCache should be cleared.
    for(i=0;i<64;i++)
            for(j=0;j<8;j++)
              MMU_CleanInvalidateDCacheIndex((i<<26)|(j<<5));
    MMU_InvalidateICache();
   
    #if 0
    //To complete MMU_Init() fast, Icache may be turned on here.
    MMU_EnableICache();
    #endif
   
    MMU_DisableMMU();
    MMU_InvalidateTLB();

    //MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr)
    //MMU_SetMTT(0x00000000,0x07f00000,0x00000000,RW_CNB);//bank0
    MMU_SetMTT(0x00000000,0x03f00000,(int)__ENTRY,RW_CB); //bank0
    MMU_SetMTT(0x04000000,0x07f00000,0,RW_NCNB);           //bank0
    MMU_SetMTT(0x08000000,0x0ff00000,0x08000000,RW_CNB);//bank1
    MMU_SetMTT(0x10000000,0x17f00000,0x10000000,RW_NCNB); //bank2
    MMU_SetMTT(0x18000000,0x1ff00000,0x18000000,RW_NCNB); //bank3
    //MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_CB); //bank4
    MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_CNB);//bank4 for STRATA Flash
    MMU_SetMTT(0x28000000,0x2ff00000,0x28000000,RW_NCNB); //bank5
    //30f00000->30100000, 31000000->30200000
    MMU_SetMTT(0x30000000,0x30100000,0x30000000,RW_CB);   //bank6-1
    MMU_SetMTT(0x30200000,0x33e00000,0x30200000,RW_CB);   //bank6-2
    MMU_SetMTT(0x33f00000,0x33f00000,0x33f00000,RW_CB);   //bank6-3
    MMU_SetMTT(0x38000000,0x3ff00000,0x38000000,RW_NCNB); //bank7
   
    MMU_SetMTT(0x40000000,0x47f00000,0x40000000,RW_NCNB); //SFR
    MMU_SetMTT(0x48000000,0x5af00000,0x48000000,RW_NCNB); //SFR
    MMU_SetMTT(0x5b000000,0x5b000000,0x5b000000,RW_NCNB); //SFR
    MMU_SetMTT(0x5b100000,0xfff00000,0x5b100000,RW_FAULT);//not used

   
    MMU_SetTTBase(_MMUTT_STARTADDRESS);
    MMU_SetDomain(0x55555550|DOMAIN1_ATTR|DOMAIN0_ATTR);
    //DOMAIN1: no_access, DOMAIN0,2~15=client(AP is checked)
    MMU_SetProcessId(0x0);
    MMU_EnableAlignFault();
           
    MMU_EnableMMU();
    MMU_EnableICache();
    MMU_EnableDCache(); //DCache should be turned on after MMU is turned on.
}

liuweiele 发表于 2009-10-14 11:17:01

void MMU_Init(void)
{
    int i,j;
    //========================== IMPORTANT NOTE =========================
    //The current stack and code area can't be re-mapped in this routine.
    //If you want memory map mapped freely, your own sophiscated MMU
    //initialization code is needed.
    //===================================================================

    MMU_DisableDCache();
    MMU_DisableICache();

    //If write-back is used,the DCache should be cleared.
    for(i=0;i<64;i++)
   for(j=0;j<8;j++)
         MMU_CleanInvalidateDCacheIndex((i<<26)|(j<<5));
    MMU_InvalidateICache();
   
    #if 0
    //To complete MMU_Init() fast, Icache may be turned on here.
    MMU_EnableICache();
    #endif
   
    MMU_DisableMMU();
    MMU_InvalidateTLB();

    //MMU_SetMTT(int vaddrStart,int vaddrEnd,int paddrStart,int attr)
    //MMU_SetMTT(0x00000000,0x07f00000,0x00000000,RW_CNB);//bank0
    MMU_SetMTT(0x00000000,0x03f00000,(int)__ENTRY,RW_CNB); //bank0
    MMU_SetMTT(0x04000000,0x07f00000,0,RW_NCNB);      //bank0
    MMU_SetMTT(0x08000000,0x0ff00000,0x08000000,RW_CNB);//bank1
    MMU_SetMTT(0x10000000,0x17f00000,0x10000000,RW_NCNB); //bank2
    MMU_SetMTT(0x18000000,0x1ff00000,0x18000000,RW_NCNB); //bank3
    //MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_CB); //bank4
    MMU_SetMTT(0x20000000,0x27f00000,0x20000000,RW_CNB);//bank4 for STRATA Flash
    MMU_SetMTT(0x28000000,0x2ff00000,0x28000000,RW_NCNB); //bank5
    //30f00000->30100000, 31000000->30200000
    MMU_SetMTT(0x30000000,0x30100000,0x30000000,RW_CNB);   //bank6-1
    MMU_SetMTT(0x30200000,0x33e00000,0x30200000,RW_CNB);   //bank6-2
    MMU_SetMTT(0x33f00000,0x33f00000,0x33f00000,RW_CNB);   //bank6-3
    MMU_SetMTT(0x38000000,0x3ff00000,0x38000000,RW_NCNB); //bank7
   
    MMU_SetMTT(0x40000000,0x47f00000,0x40000000,RW_NCNB); //SFR
    MMU_SetMTT(0x48000000,0x5af00000,0x48000000,RW_NCNB); //SFR
    MMU_SetMTT(0x5b000000,0x5b000000,0x5b000000,RW_NCNB); //SFR
    MMU_SetMTT(0x5b100000,0xfff00000,0x5b100000,RW_FAULT);//not used

   
    MMU_SetTTBase(_MMUTT_STARTADDRESS);
    MMU_SetDomain(0x55555550|DOMAIN1_ATTR|DOMAIN0_ATTR);
    //DOMAIN1: no_access, DOMAIN0,2~15=client(AP is checked)
    MMU_SetProcessId(0x0);
    MMU_EnableAlignFault();
   
    MMU_EnableMMU();
    MMU_EnableICache();
    MMU_EnableDCache(); //DCache should be turned on after MMU is turned on.
}

songzi2018 发表于 2009-10-14 12:39:11

谢谢liuweiele:晚上回去研究

liuweiele 发表于 2009-10-14 12:55:15

不客气

songzi2018 发表于 2009-10-14 20:50:18

就是MMU_Init()没有处理好,谢谢liuweiele,问题解决,但是还是搞不清楚什么时候设置RW_CB/RW_CNB/RW_NCNB

修改后的源码,供大家参考ourdev_491655.rar(文件大小:2.09M) (原文件名:uCos2.rar)

liuweiele 发表于 2009-10-14 21:30:38

这个只要熟悉MMU的原理和作用就好办了.

songzi2018 发表于 2009-10-15 11:11:11

谢谢楼主,正在补一补这方面的东西

xinyou 发表于 2009-10-16 08:42:07

mark

hujianggao 发表于 2009-11-12 12:00:38

我用44B0的板子点这个屏,最开始的时候用总线的方案,但是将总线延长后,哪怕是不接屏,只给一个IO取反的动作,仿真时也会死机。如果把总线拉出秋的飞线拆了,进入仿真,就可以运行了。这是干扰的问题吗?但看过有网友的制作,好像比我拉出来的飞线都长,他们却成功了。我不知道会不会同引导程序里的东东有关?
请兄弟们帮忙指正。

liuweiele 发表于 2009-11-12 22:10:38

如果是接在44B0X的并行总线上,最好不要超过10cm,否则很容易导致NorFlash或SDRAM读写错误.用IO口模拟就没那么严格了,不过没什么实用价值~~~

hujianggao 发表于 2009-11-13 16:36:08

感谢liuweiele的提醒,的确是引线过长了,我把引线尽可能的短,实验成功了,但有两个问题1:我把时钟调到66M,在两个图片转换,还是有明显的“拉窗帘”的现象。当然比我用IO口模拟出来的效果要好多了。2:我的引导程序有仿真的时候可以正常运行,但烧的IC里后就不运行了,但用另一个实例中的引导程序却是仿真的时候会死机,但烧进IC就可以运行,我不知道问题出在哪里。还请兄弟帮忙解答一下。

liuweiele 发表于 2009-11-13 18:39:16

实现程序Remap到RAM运行,并使能Cache功能,适当优化一下SDRAM的时序(以速度优先),才能大幅提升CPU的性能.

agwtpcbox 发表于 2009-11-22 18:55:52

做得真不错
好好向LZ学习!!
记下有时间来学下

add0 发表于 2009-11-23 20:02:16

刚好准备做小屏图片切显
马克

chinamanzhong 发表于 2009-12-15 20:36:19

mark

cmyldd 发表于 2010-1-4 14:13:46

好漂亮啊,流口水了

topcare 发表于 2010-1-22 16:27:56

mark

xzlx 发表于 2010-2-7 10:50:38

我按楼主的方法做,只不过是用的八位数据线,怎么是花屏啊?

tangwei039 发表于 2010-2-22 15:20:57

mark

mustang_zhu 发表于 2010-2-23 09:43:23

44b0x能有MMU???

pig163xx 发表于 2010-2-28 10:12:10

不知道楼主能否具体透露一下44B0和tft LCD的连接图?
        LCD_nRST->GPC5         Output.
        LCD_LED->GPE5(Timer2 PWM)        Output.还有

liuweiele 发表于 2010-3-4 12:26:17

回复【68楼】pig163xx
不知道楼主能否具体透露一下44B0和tft LCD的连接图?
LCD_nRST-&gt;GPC5Output.
LCD_LED-&gt;GPE5(Timer2 PWM) Output.还有
         

-----------------------------------------------------------------------

驱动程序有说明

major888 发表于 2010-3-4 15:34:09

mark

tear086 发表于 2010-4-15 08:30:06

arm真好,顶楼主。

smartzou 发表于 2010-4-15 12:11:18

Mark!

543440013 发表于 2010-4-16 18:59:39

哇!好强大!

sange 发表于 2010-4-17 10:38:10

mark

feixuehanyi 发表于 2010-5-25 20:32:40

mark

anni_zzg 发表于 2010-8-12 11:09:39

MARK

tianyuwei 发表于 2010-8-31 14:41:20

mark---------

ctunan 发表于 2010-8-31 15:15:54

学习了~~,不错。

haihai 发表于 2010-9-7 09:27:26

楼主用的什么GUI啊?很好看啊

liuweiele 发表于 2010-9-7 09:36:29

回复【79楼】haihai 春海
楼主用的什么gui啊?很好看啊
-----------------------------------------------------------------------

自己设计的GUI

wslixd 发表于 2010-9-10 16:37:49

谢谢楼主,还没入门。

yulri 发表于 2010-9-12 08:53:23

要是再详细一点就好了!!!

Linfanfeng 发表于 2010-9-13 15:30:39

mark~~~


前不久刚好买了块2.4寸的TFT LCD,只做了个俄罗斯方块游戏,现在还得好好向LZ学习学习GUI设计呢。

312578957 发表于 2010-9-24 21:05:26

帮顶,确实不错,

love5220 发表于 2010-10-10 10:24:46

楼主你的QQ号是多少啊?有问题想和你讨教呢!

love5220 发表于 2010-10-12 17:18:24

楼主你好,我买了一块ILI9320的液晶屏,我用44b0的数据口直接 接液晶的数据口
16位的,不知道什么原因,数据口的电压 都为3.6V,超级终端也显示乱码!请问这是什么原因呢?

RightZL 发表于 2010-10-12 20:04:07

m

sharpufo 发表于 2010-10-13 13:52:58

mark,很漂亮。
BTW:发现一处文字错误:星期二的英语缩写不是THU.

liuweiele 发表于 2010-10-13 18:14:01

回复【88楼】sharpufo 风生水起月皎白
mark,很漂亮。
btw:发现一处文字错误:星期二的英语缩写不是thu.
-----------------------------------------------------------------------

TUE

zhikai_wu 发表于 2010-10-26 12:43:11

mark

lcx_guaiguai 发表于 2011-8-15 12:21:03

好厉害,向LZ致敬

sarify 发表于 2011-10-31 22:35:00

很漂亮,学习了

mjz1122 发表于 2011-11-11 10:59:36

ARM芯片做的,好牛啊

1032358837 发表于 2011-12-12 22:45:39

漂亮,楼主是用开发班做的吗,我买个嵌入式的开发板楼主能介绍个吗

qq1328454800 发表于 2012-8-29 17:05:53

请问楼主您是怎么样将彩屏的背景设置成一幅图片然后再上面写数据,我平时在彩屏上写数据时背景都是清屏是的颜色(一种颜色),但不知道怎么将背景设置成一幅图片,如果可以的话楼主可以知道一些吗,小弟感激不尽!!!

yihui184 发表于 2012-9-3 17:43:53

厉害呀!!!

Lin_811 发表于 2012-12-18 23:24:44

看看看            

cjx19891212 发表于 2013-5-16 16:23:29

学习下MMU,随便补补

Randy1022 发表于 2013-7-28 10:56:19

库啊!!!!!!!!!!!!!!!!!!!

hejie126 发表于 2014-2-16 20:26:43

牛,楼主威武
页: [1] 2
查看完整版本: 用S3C44B0X+2.4寸TFT LCD做的万年历功能【恢复】