`
malixxx
  • 浏览: 99927 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

arm mini2440的led灯总结

    博客分类:
  • arm
阅读更多
led灯例子
一、led电路图

-----------------------------------------
二、手册说明
这里对应s3c2440文档,第9章io部分的文档找到GPB部分





GPBCON
GPB0-10用于设置输入、输出、和其他特殊属性

GPBDAT
这里的11位对应GPB0-10 用于控制高低电平

GPBUP
是端口上拉寄存器 端口上拉寄存器控制着每个端口组的上拉寄存器的使能或禁止,当对应bit为0,这个引脚的上拉寄存器是允许的,当为1时,上拉寄存器是禁止的。
=====================
三、分析代码
/*
* 功能:实现LED1灯循环亮灭
* LED1--GPB5
* LED2--GPB6
* LED3--GPB7
* LED4--GPB8
*/
#define rGPBCON (*(volatile unsigned long*)0x56000010)
#define rGPBDAT (*(volatile unsigned long*)0x56000014)
#define Led1_On ~(1<<5)
#define Led1_Off (1<<5)

void Led_Port_Init(void);
void delay(int i);

int main(void) {
Led_Port_Init();
while (1) {
  //Led1亮
  rGPBDAT &= Led1_On;
  delay(10000);
  //Led1灭
  rGPBDAT |= Led1_Off;
  delay(10000);
}
}
/*
* 函数名称:Led_Port_Init()
* 全局变量:无
* 参 数:无
* 返 回 值:无
* 说 明:实现Led1灯的寄存器初始化
*/
void Led_Port_Init(void) {
//设置GPB5为输出端口
rGPBCON &= ~(3 << 10);
rGPBCON |= (1 << 10);
}
/*
* 函数名称:delay(int t)
* 全局变量:无
* 参 数:t
* 返 回 值:无
* 说 明:延时函数
*/
void delay(int t) {
int a, b;
for (a = 0; a <= i; a++)
  for (b = 0; b <= 100; b++)
   ;
}
------------------------------------
分析
1、*(volatile unsigned long*)0x56000010
volatile unsigned long *表示将后面跟的内容转化成一个指针,并且是指向一个易变的无符号整数。
左边再加个*,表示取该指针指向地址的内容

#define rGPBCON (*(volatile unsigned long*)0x56000010)
#define rGPBDAT (*(volatile unsigned long*)0x56000014)
这个宏用于定义GPBCON,GPBDAT地址(值对应手册中的值)
---------
这个方法用于初始化
void Led_Port_Init(void) {
//设置GPB5为输出端口
     rGPBCON &= ~(3 << 10);    //这个设置为输入

     rGPBCON |= (1 << 10);        //这个设置为输出

}
---------
#define Led1_On ~(1<<5)    //因为是GBP5所以左移5位
#define Led1_Off (1<<5)
while (1) {
  //Led1亮
  rGPBDAT &= Led1_On;
  delay(10000);
  //Led1灭
  rGPBDAT |= Led1_Off;
  delay(10000);
}
这里修改GPBDAT来控制灯的开启和关闭

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

分享到:
评论
1 楼 malixxx 2014-03-04  
这个上传图片真费劲,上传了word文件

相关推荐

    Mini2440 LED跑马灯实例

    首先,我们需要配置GPIO端口为输出模式,然后通过循环控制GPIO状态,模拟LED灯的亮灭顺序,形成跑马灯效果。以下是一个简单的示例代码: ```c #include "s3c2440.h" #define LED_Px ((volatile unsigned int*)0x53...

    ARM9 MINI2440 LED 跑马程序

    跑马灯效果是一种常见的LED显示方式,它通过逐个点亮或熄灭LED来形成一种类似马奔跑的效果,常用于教学、实验以及设备状态指示等场景。 首先,我们要理解ARM9处理器。ARM9是ARM公司设计的一种微处理器内核,广泛...

    ARM 2440 led控制代码

    **ARM 2440 LED控制代码详解** 在嵌入式系统开发中,ARM处理器以其高效能、低功耗的特点广泛应用于各种设备。S3C2440是Samsung公司推出的一款基于ARM920T内核的微处理器,常用于开发板和嵌入式系统设计。在S3C2440...

    leds.zip_mini 2440_mini 2440 led

    总结来说,"leds.zip_mini 2440_mini 2440 led"提供了一个在Mini 2440平台上测试LED功能的工具,它涉及到嵌入式系统的GPIO控制、用户交互、定时器应用等多个方面,对于学习和实践嵌入式开发具有很高的参考价值。...

    mini2440_led.tar.gz

    "mini2440_led.tar.gz"这个压缩包包含了一个LED闪烁的汇编代码,它展示了如何通过编程控制开发板上的LED灯进行闪烁,为初学者提供了基础的硬件控制实践。 一、S3C2440处理器 S3C2440是三星公司设计的一款高性能、低...

    mini2440 流水灯

    点灯通常是指通过编程使GPIO(通用输入/输出)引脚驱动LED灯,而流水灯则是一种特定的显示效果,通过改变LED的亮灭顺序实现动态视觉效果。 在压缩包中的“loopLed”可能是一个源代码文件或工程文件,包含了实现LED...

    mini2440 led裸机驱动

    LED驱动程序则是控制LED灯亮灭的软件模块,它直接与硬件的GPIO(General-Purpose Input/Output)接口打交道。 在裸机驱动中,我们不依赖任何操作系统,所有的操作都是直接在硬件层面上进行,因此需要对CPU的寄存器...

    LED_Button_Fifo.rar_fifo_mini2440_mini2440 button_mini2440 led

    在Mini2440上实现LED跑马灯,需要通过GPIO口控制LED灯的状态,配合定时器或延时函数来实现动态效果。 4. **按键控制**: 按钮在项目中用于用户交互,可以改变LED跑马灯的运行速度或者切换模式。按键的检测通常通过...

    mini2440学习总结和代码

    3. LCD驱动:控制液晶显示屏,包括初始化、设置分辨率、更新显示内容等。 4. NAND Flash驱动:读写NAND Flash,用于存储操作系统和应用程序。 五、代码解析 通过阅读压缩包中的"mini2440学习笔记",可以深入理解...

    led-player.rar_mini2440 led_player

    LED Player是针对Mini2440开发的一种多媒体应用,它允许通过编程控制LED显示动态效果,如文字、图形、动画等,广泛应用于嵌入式系统的演示和教学中。"led-player.rar"文件包含了实现这一功能的相关代码和配置文件。 ...

    韦东山老师视频在MINI2440上运行的程序-MMU

    【描述】:描述中提到的是将韦东山老师的MMU课程实践部分成功移植到MINI2440开发板上,实现了一个功能,即通过四个LED灯的循环闪烁来验证程序的正确执行。这表明了MMU在实际硬件环境中的操作和调试过程,以及如何...

    mini2440裸机编程开关控制LED灯和蜂鸣器实验源代码

    在本文中,我们将深入探讨如何使用Mini2440开发板进行裸机编程,实现开关控制LED灯和蜂鸣器的实验。这个实验是嵌入式系统学习的基础,旨在帮助理解硬件与软件的交互,以及如何通过编程控制硬件设备。 首先,Mini...

    Mini2440点亮LED

    在本文中,我们将深入探讨如何使用Mini2440开发板和S3C2440微处理器通过C语言来点亮LED。S3C2440是一款基于ARM920T内核的微处理器,广泛应用于嵌入式系统设计。初学者可以通过这个简单的LED控制例程了解基本的GPIO...

    ARM9(mini2440)裸机综合

    总结起来,这个项目展示了如何在ARM9 Mini2440开发板上进行裸机编程,利用串口控制定时器,实现LED灯的闪烁。这涉及到处理器内核的理解、外设的驱动编写、中断处理机制以及程序的编译和链接过程。这样的实践对于学习...

    ucosii mini2440 arm-linux-gcc 编译

    同时,通过GPIO控制的LED灯也会按照预定的模式闪烁,验证了任务调度和中断处理的正确性。 这个过程中,可能会遇到如库文件不兼容、硬件驱动问题、中断配置错误等挑战,需要对底层硬件和操作系统有深入理解。例如,...

    Mini2440裸板测试代码

    2. 外围设备驱动:Mini2440开发板上有多种外围设备,如串口、GPIO(通用输入输出)、定时器、LCD显示屏、ADC(模数转换器)等。这些设备的驱动程序是操作系统与硬件交互的桥梁。例如,串口驱动用于实现UART通信,...

    mini2440 keil4 led流水灯程序

    【标题】"mini2440 keil4 led流水灯程序"所涉及的知识点主要集中在嵌入式系统、微处理器编程以及硬件接口控制上。Mini2440是一款基于Samsung S3C2440处理器的开发板,常用于嵌入式系统的学习和开发。Keil uVision4...

    mini2440裸机定时器0基础实验

    我们将深入探讨"mini2440裸机定时器0基础实验",这是一个针对初学者的实践教程,旨在教会如何利用MDK(Microcontroller Development Kit)开发环境,通过微型计算机板mini2440上的定时器0功能来控制LED灯进行1秒周期...

Global site tag (gtag.js) - Google Analytics