S3C2440 开发板实战(3):编译概念 + LED点亮闪烁

发布者:CreativeDreamer最新更新时间:2022-07-18 来源: csdn关键字:S3C2440  LED 手机看文章 扫描二维码
随时随地手机看文章

基于我原先有STM32等单片机的基础,内容是结合我所新学习到的知识进行书写,所以基础知识可能不会涉及到请见谅。


一、LED点亮

我们直接通过C程序对寄存器进行操作(汇编语言使用尽量少),通过原理图可看出开发板上的LED对应的GPIO口为GPF4、5、6,所以这里首先以GPF4对应的LED进行点亮,从芯片手册寻找GPF4对应的寄存器(I/O port 章节),就可以看到S3C2440芯片控制IO口对应的寄存器为下图所示:

GPIO寄存器

GPIO寄存器

然后就是和单片机操作一样,对他进行一一设置,对于LED的电量只要利用GPFCON和GPFDAT寄存器这两就行,


1. 首先对GPFCON进行设置,查找GPFCON表找到GPF4,如下所示:

很简单,我们的IO口只是要做输出,所以我们设置为01=output:


GPFCON &= ~(3 << 8); // 初始化 00

GPFCON |= (1 << 8);  // 设置GPF4的GPFCON寄存器 01 输出


其中GPFCON为宏定义,代表GPFCON的地址,以及其他寄存器的定义类似如下所示


#defind    GPFCON    *(volatile unsigned int *)(0x56000050)


2、接着设置GPFDAT,由于我们使用的是输出引脚,所以对应的位应该置1,这从芯片手册上简介就可以看出

不做过多的解释,看就行了,然后配置他


GPFDAT &= ~(7 << 4); 

GPFDAT |= (6 << 4);   // GPF4对应的位  置0


最后来看下LED点亮的main程序


#define    GPFCON    *(volatile unsigned int *)(0x56000050)

#define    GPFDAT    *(volatile unsigned int *)(0x56000054)

 

int main(void)

{

    GPFCON &= ~(3 << 8); // 初始化 00

    GPFCON |= (1 << 8);  // 设置GPF4的GPFCON寄存器 01 输出

 

    GPFDAT &= ~(7 << 4);  // 全部IO口初始化不输出

    GPFDAT |= (6 << 4);   // GPF4对应的位  置1

    return 0;

}


然后配套上章节中的Strat.S文件,在程序的结尾上引用该main函数就可以实现LED的点亮了


二、LED流水灯

在单片机中的流水灯是通过delay函数(在函数中疯狂循环)。所以通过小小的改动即可实现流水灯操作


#include "s3c2440_soc.h"

 

void my_delay(volatile int d)

{

    while(d--);

}

 

int main(void)

{

    uart0_init();

    int val    =0x0001;

 

 

    GPFCON &= ~((3 << 8) | (3 << 10) | (3 << 12));

    GPFCON |= ((1 << 8) | (1 << 10) | (1 << 12));

 

    while(1)

    {

 

        GPFDAT &= ~(7 << 4);

        GPFDAT |= (val << 4);

        

        val = val << 1;

        if(val == 0x8)

            val = 0x0001;

        my_delay(300000);

 

    }

 

    return 0;

}


烧入程序运行现象为两个灯轮流闪烁。可以动手试试改为单个灯闪烁。太晚了在这里我就不试了。


关键字:S3C2440  LED 引用地址:S3C2440 开发板实战(3):编译概念 + LED点亮闪烁

上一篇:S3C2440 开发板实战(5):定时器中断
下一篇:S3C2440 开发板实战(2):start.S初认识 + SDRAM配置 + 重定位

推荐阅读最新更新时间:2024-11-01 20:20

ARM Linux S3C2440之ADC驱动实现
硬件描述: S3c2440有一个10-bit的CMOS ADC 模数转换器,支持8个模拟通道输入,10位的分辨率,最高速度可达500KSPS(500 千次/每秒)。 从图中可知:模拟ADC,包含了2部分功能,一部分是触屏功能,另一部分就是普通ADC功能,分别可以产生INT_TC和INT_ADC 两个中断。8个AIN模拟输入(A ,YM,YP,XM,XP)通过一个8路模拟开关MUX进行通道片选。 ADC模块共有20个寄存器。对于普通ADC转换,使用ADCCON 和 ADCDAT0即可完成控制。ADCCON用于控制设置,ADCDAT0保存了转换结果。 驱动程序ADC_DEV.ko: #include linux/err
[单片机]
ARM Linux <font color='red'>S3C2440</font>之ADC驱动实现
武汉出台中国首个城市路灯绿色照明规划
  近日,《武汉市城市道路绿色照明专项规划》顺利通过专家评审,该规划是中国首个城市路灯绿色照明专项规划。   按规划,武汉市将以人们夜间活跃程度和人口密集程度不同,将中心区域路灯划分为由亮到暗四个不同的亮度区域。此外,路灯光色也注重突出城市特色,体现历史和文化积淀。   绿色照明是一项利国、利民、利企的民心工程,其目的是节约用电,保护生态环境。中投顾问环保行业研究员侯宇轩表示,中国早在十几年前就开始启动“绿色照明”工程,由于前期的推广工作已经大量铺开,预计2010年之前也将出台相关方案,逐渐禁止销售白炽灯。届时行业将面临深度变革,生产白炽灯的企业面临转型压力,而对于生产 LED 绿色照明灯具的厂商来说则无疑是重大利好。
[模拟电子]
2011年台湾将有望跃升全球最大led产地
  北京时间4月17日消息,据台湾媒体报道,尽管面临我国大陆地区LED厂商的崛起,但台湾省上游晶片厂为了扩大市占率,积极于大陆地区设立据点,市场研究机构DisplaySearch表示,2010年全球最大LED供应来源为韩国,第2大为我国台湾省,但预估2011年台湾将可跃升为全球最大LED供应来源,韩国退居第2位。   DisplaySearch指出,2011年第1季全球前3大LED晶粒供货商分别为韩国三星S-LED、乐金LG IT,第3名则为台湾的晶电,总计台湾及韩国厂商占全球LED晶粒供应比重逾70%。   以台厂抢攻中国大陆市场观察,目前仅有泛晶电集团的广镓还未到中国大陆设厂,其余包含璨圆、新世纪、泰谷、华上、鼎元全均
[电源管理]
如何用PTC热敏电阻实现LED照明设备过热保护?
随着 LED 照明设备(发光二极管)的性能不断提高,价格日渐低廉,其市场也迅速扩大。LED照明设备已实现了低价化,然而,与传统的白炽灯,荧光灯相比,作为照明设备的实绩仍然欠佳,人们指出其安全性的课题。虽然 LED 具有高效照明,低耗电的特点,但是作为高亮度的LED元件本身却处于异常的高温状态。 本文将介绍使用村田制作所的陶瓷 PTC 热敏电阻“POSISTOR”来简单实现LED照明设备过热保护的方法,能够达到低成本,提高LED照明设备的安全性。 演示板说明 图1所示为村田制作所展示的发光二极管(LED)演示板的外观照片。 图1:村田制作所展出的发光二极管(LED)演示板 在该LED演示板上装载5个表面贴装型 LED ,
[电源管理]
如何用PTC热敏电阻实现<font color='red'>LED</font>照明设备过热保护?
从0开始学Keil下的S3C2440裸机开发-1使用内部RAM
1建立KEIL开发环境 Keil版本:μVision V4.71.2.0; 调试器:JLINKV8; 调试软件:J-Link ARM V4.72。 2新建工程 新建工程如图1,并在硬盘建立文件夹结构如图2,保存后选择CPU类型如图3所示,选择S3C2440A。 完成后,设置工程结构。 将S3C2440.S移动到Core文件夹下,并添加到工程Core组下。 新建app.c文件,存储到App文件夹下,并添加到工程App组下。 组管理设置完成后,如下. 3设置工程属性 设置内部4KRAM分配,4KRAM 2k作为IROM,2K作为IRAM,查看S3C2440存储器映射,内部RAM起始地址为0X400000
[单片机]
从0开始学Keil下的<font color='red'>S3C2440</font>裸机开发-1使用内部RAM
车用LED市场需求带动全球LED市场产值
2017年的LED产业受惠于LED市场价格止稳,加上车用照明领域的快速成长,LEDinside预估2017年的车用LED产值达到28.17 亿美元,年成长14.8%,相较于2015年至2021年,整体LED产业的年复合成长率仅3%的成长幅度,呈现大幅成长的态势。那就请您跟随eeworld LED 小编的脚步,来详细的了解下车用LED市场需求带动全球LED市场产值。 LEDinside指出,过去LED产业的几项主流应用包括手机应用,中大尺寸面板背光等应用,将因OLED的崛起而逐年下滑。 至于LED照明虽然已经是LED产业的最大宗应用,但由于渗透率饱和以及竞争者众,使得整体产值出现成长趋缓的状态。 LEDinside表示,
[电源管理]
NXPSSL210314W可调光LED驱动方案
NXP公司的SSL2103是用于LED照明的可调光Greenchip控制器, 适合于反激和降压配置应用.器件支持大多数的调光解决方案,具有最佳的效率,中性调光曲线可对数修正到1%,超温保护(OTP),绕组短路保护(SWP)和过流保护(OCP).本文介绍了SSL2103主要特性和优势,方框图,亮度控制框图,降压和反激配置应用电路图,以及SSL2103演示板主要指标,230 V (AC)14 W A55 LED 反激电路图和材料清单. SSL2103: Dimmable Greenchip controller for LED lighting The SSL2103 is a Switched Mode Power Sup
[电源管理]
NXPSSL210314W可调光<font color='red'>LED</font>驱动方案
s3c2440 地址分配讲解
(一)s3c2440 地址分配讲解 (很难很纠结) mini2440的地址怎么分配。mini2440处理器的地址怎么分配。 S3C2440处理器可以使用的物理地址空间可以达到4GB,其中前1GB的地址(也就是0x0000 0000--0x4000 0000)为外设地址空间,外设地址究竟怎么确定的呢??好烦?? 还有一部分为CPU内部使用的特殊功能寄存器地址空间(地址范围为0x4800 0000--0x5FFF FFFF),其余的地址空间没有使用。 下面用两个表格说明外设地址空间好特殊功能寄存器地址空间 3FF FFFF 共 26根地址线,也就是 2^6=64 2^20=1M 那么就是 64M 内存概念: 内存是代码的
[单片机]
<font color='red'>s3c2440</font> 地址分配讲解
小广播
设计资源 培训 开发板 精华推荐

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

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

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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