历史上的今天

今天是:2024年10月14日(星期一)

正在发生

2018年10月14日 | Tiny4412的LCD操作

发布者:JoyfulLife 来源: eefocus关键字:Tiny4412  LCD操作 手机看文章 扫描二维码
随时随地手机看文章

// 4412一共有5个window,每一个window可以设两个buffer

// ALPHA   :决定是否半透明

// COLOR KEY :决定是否显示

// OSD       :决定一个窗口的显示区域

#include "regs.h"

void enable_mmu(unsigned long ttb);

void init_ttb(unsigned long *ttb_base);

void mmap(unsigned long *ttb_base, unsigned long va, unsigned long pa);

void memset(char *buf, char ch, int size);

void memcpy(char *dst, char *src, int size);

void do_irq(unsigned long regs[]);

void (*printf)(char *, ...) = 0x43e11434;

void main(void)

{

    unsigned long fb = 0x53000000;

    clean_screen(fb, 800, 480);

    GPF0CON    = 0x22222222;    

    GPF1CON = 0x22222222;

    GPF2CON    = 0x22222222;

    GPF3CON = 0x22222222;

    //Blacklight

    GPD0CON  &= ~(0xf << 4);

    GPD0CON  |=  (0x1 << 4);

    GPD0DAT  &=  ~(0x1 << 1);

    //system register

    LCDBLK_CFG = 2;    //FIMD Bypass模式

    LCDBLK_CFG2 = 1;

    

    //clock configure

    CLK_SRC_LCD0 =  6; //SCLKMPLL_USER_T is Source Clk == 800M

    CLK_DIV_LCD  =  0; //SCLK_FIMD0 == SCLKMPLL_USER_T == 800M

    CLK_GATE_IP_LCD = 1; //门限寄存器输出打开

#define CLKVAL_F   13

    VIDCON0 = (CLKVAL_F << 6);

    VIDCON1 =  (1 << 5) | ( 1 << 6) | (1 << 7) | (1 << 9);    

    VIDCON2 = 0;

    VIDTCON0 = 2  | (2 << 8) | (20 << 16);

    VIDTCON1 = 2  | (2 << 8) | (40 << 16);    

    VIDTCON2 = 799 | (479 << 11);

    VIDTCON3 = 0;

    SHADOWCON = 0x1;

    //----------------------------     

    WINCON0 = 1 | (0xb << 2);    //24bpp

    VIDOSD0A = 0;

    VIDOSD0B = 479 | (799 << 11);

    VIDOSD0C = 480 * 800; 

    //windows 0's  buffer 0

    VIDW00ADD0B0 = fb;    

    VIDW00ADD1B0 = fb + 800 * 480 * 4; //24bpp,实际使用32位,浪费一个字节

    VIDW00ADD2  = 800;

    //Video output enable

    VIDCON0 |= 1 | (1 << 1);    

}

#define RGB888(r, g, b)  (((r) << 16) | ((g) << 8) | (b) )

void clean_screen(unsigned long *fb, int w, int h)

{

    int i, j;

    for (i = 0; i < h; i ++) {

        for (j = 0; j < w; j ++) {

            fb[i * w + j] = RGB888(0, 255, 0);

        }        

    }

}

===================================================================

Makefile文件:

default:

    arm-linux-gcc -c test.c  -o test.o

    arm-linux-ld  -Ttext=0x70003000  test.o  -o test

    arm-linux-objcopy  -O binary  test  test.bin

clean:

    rm -f test.o  test  test.bin   *~ 

==============================================================


关键字:Tiny4412  LCD操作 引用地址:Tiny4412的LCD操作

上一篇:Exynos4412汇编LED操作代码
下一篇:Tiny4412的Uart操作

推荐阅读

人工智能早就已经成为最热门的赛道,不仅仅是创业公司,重要的科技公司都把人工智能列为自己的重要战略。作为中国最重要的科技公司之一,华为也在10月9日发布了自己的人工智能战略,同时还公布了华为要做的两款人工智能芯片。 华为轮值CEO徐直军在演讲中,把华为的人工智能战略概括为五个方面:投资基础研究;打造全栈方案;投资开放生态和人才培养;把AI...
据外媒报道,虽然太阳能电池板非常有效,但是其主要缺点之一是,只会在白天产生能量,因此需要存储多余的能量以备夜间使用。不过现在,美国加州大学洛杉矶分校(UCLA)的工程师们研发出一种原型设备,与太阳能电池板工作原理几乎相反,该设备可以从寒冷的夜空中收集能量,被动为LED灯供电。该设备的工作遵循热电原理,即通过两个表面的温差而产生电流,最...
据外媒报道,L1至L5高级驾驶辅助系统(ADAS)和自动驾驶(AD)传感技术领导者LeddarTech宣布与Flex达成了合作协议,两家公司将合作研发激光雷达评估工具包以及研发汽车激光雷达传感器设计、研发和生产所需的相关服务。Flex是一家全球领先的制造、供应链、技术公司。此次合作将结合LeddarTech的传感技术以及Flex的汽车解决方案专业知识和设计服务,为客户提...
1. PWM概述定时器0、1、2和3具有PWM功能。TCNTBn是计数初值,定时器开启后,减1计数。TCMPBn的值是用于比较的,初始值是0,所以TCNTBn减1计数到0时,就等于TCMPBn,此时TOUTn就会翻转。所以,TCMPBn的值是用于脉宽调制PWM的,即当递减计数器(确切说是TCNTn)的值与定时器控制逻辑中的比较寄存器的值(确切说是TCMPn)相等时,控制逻辑改变输出电平。TOUT...

史海拾趣

问答坊 | AI 解惑

变频器的节能应用

一、变频器在风机水泵上的应用   一般使用的风机、水泵设备额定的风量、流量、通常都超过实际需要的风量流量,又因为工艺要求需要在运行中变更风量、流量,而目前,采用挡板或阀门来调节风量和流量的调节方式较为普遍,虽然方法简单,但实际 ...…

查看全部问答∨

我的一个想法

把资科都放到一个主题里,到时大家找也好找,不知道你们怎么想…

查看全部问答∨

LS2051的基础程序

LS2051的基础程序…

查看全部问答∨

USB转并口

我的本子上只有usb口,想买个430的学习板,可是430的usb下载线太贵了!请问有没有可以用的usb转并口啊?…

查看全部问答∨

支持jj3055的Max038信号发生器DIY,国外的作品

来源于:http://www.kafka.elektroda.eu/podstrony/MAX038.php This is simple MAX038 generator. It produces sine, triangle and square waves from 1Hz up to ...…

查看全部问答∨

声音基础知识

Sound Information Sound Pressure LevelSound Pressure Level (SPL) decreases proportionately with distance \"x\" from the sound source. Figures 1 and 2 show the SPL drop off, expressed in dB, as a function of distance \"x\" from ...…

查看全部问答∨

fs2410板子用uboot 启动uImage的问题

bootm 0x30008000    这里启动的uImage ## Booting image at 30008000 ...    Image Name:   Linux-2.6.14.1    Created:      2009-01-30  14:31:19 UTC     ...…

查看全部问答∨

OV9650,搞不定了,求助!

各位英雄:      小弟平台为PXA270+WINCE5.0,OV9650现在可以进行实时预览,可是亮度太低,寄存器参照的是标准设置;      无论怎么修改寄存器,比如修改增益、曝光、颜色矩阵,都无法使亮度提高! &nb ...…

查看全部问答∨

WinCE 下使用SQLite问题

网上有SQLite在EVC下使用的封装, 可是这个封装只能在WCE MFC AppWizard下应用,我想在WCE Application 中应用SQLite 请问我要怎样改写sqlite封装呢? 请教~~~~~…

查看全部问答∨

LCD提问

液晶屏的相关程序谁有啊…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved