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来控制灯的开启和关闭
=====================
分享到:
相关推荐
初学ARM裸机开发,先从最基本的新建项目配置参数开始,使用MDK4.12完成第一个程序实现在mini2440开发板上可以在线调试LED跑马灯。
ARM 2440 GPIO编程控制点亮led源码,具有详细注释,便于新手入门学习。
刚学arm时写的第一个汇编程序,led流水灯。板子是mini2440 。
基于Mini2440板的s3c2440的c语言点亮LED例程,测试无误。本人对基本的GPIO操作进行了封装,封装头文件为ioset.h。
ARM9 mini2440中使用软件中断SWI 点亮LED
本程序是利用串口控制定时器的例子。用串口控制LED灯闪烁
树莓派没有使用显示屏,需要使用指示器对系统的识别进度和识别结果进行表示。在本系统中,考虑使用两个指示器进行标识,分别为红色LED灯和蜂鸣器,LED灯闪烁代表系统正在等待识别中,需要先有人进入系统识别区域,...
在本系统中主要以三星mini2240的ARM开发板作为开发平台,然后配合CMOS图像传感器,液晶显示屏,在通过串口控制LED光源。最后通过实验证明本电子内镜系统是完全可行的。整个系统的运行基本可以按照预期设计要求工作,...
LCD中文显示屏。 同时有声音和LED指示测试结果。 设置的测试参可掉电保存。 可以连接电脑,有PC软件,实现更多功能,也可单独使用。 通过PC软件对苹果协议数据抓取。 可以在线升级,使仪器随时拥最新的功能,如果...
12、LCD 中文显示屏。 13、同时有声音和LED 指示测试结果。 14、设置的测试参可掉电保存。 15、由于USB 座使用率很高,容易损坏,所以USB 座采用分体设计,方便更换。 16、可以连接电脑,有PC 软件,实现更多功能,...