S3C2240试验一---------I/O续(原创)
来源:互联网 发布:二叉树算法 编辑:程序博客网 时间:2024/05/17 02:28
上午刚弄完一篇paper,中午闲着没事把自己昨天写的代码优化了一下,这样看起来结构更加紧凑且易于扩展,拿出来分享一下!
Init.S------------------------启动代码(和前面的一样)
2440adr.h------------------主要是一些寄存器的地址信息
2440lib.h--------------------功能函数的声明,如Delay(int x),Init_Port().....
2440lib.c---------------------2440lib.h的实现函数
main.c-------------------------实现函数
Init.s 和前面的一样
2440adr.h
这里只是做简单的i/o口实验,所以只列举了I/o寄存器的地址
#ifndef _2440adr_
#define _2440adr_
#define GPBCON (*(volatile unsigned *)0x56000010)
#define GPBDAT (*(volatile unsigned *)0x56000014)
#define GPBUP (*(volatile unsigned *)0x56000018)
#endif
2440lib.h
#ifndef _2440lib_
#define _2440lib_
void Delay(int x); //延迟函数
void ChangeClockDivider(int x,int y);//分频
void ChangeMPllValue(int x,int y,int z); 、//mpll时钟
void Port_Init(); //I/O口初始化
void Isr_Init(); //中断初始化
#endif
2440lib.c
由于我们只是用的主时钟频率,所以在这我没有实现分频和mpll,在此只是对Port_Init()做了实现
#include "2440lib.h"
#include "2440adr.h"
void Delay(int x)
{
int i;
for(i=0;i<x;i++);
}
void ChangeClockDivider(int x,int y)
{
}
void ChangeMPllValue(int x,int y,int z)
{
}
void Port_Init()
{
GPBCON=0x55555;
GPBUP=0x1e0;
}
void Isr_Init()
{
}
#include "2440adr.h"
#include "2440lib.h"
void main()
{
ChangeClockDivider(3,1);
ChangeMPllValue(127,2,1);
Port_Init();
Isr_Init();
while(1)
{
GPBDAT=(GPBDAT&0xe1f)|0xfde;
Delay(0x5fff);
GPBDAT=(GPBDAT&0xe1f)|0xfbe;
Delay(0x5fff);
GPBDAT=(GPBDAT&0xe1f)|0xf7e;
Delay(0x5fff);
GPBDAT=(GPBDAT&0xe1f)|0xefe;
Delay(0x5ffff);
}
}
编译通过,把程序下载到开发板上,效果和前一节一样。
是不是这样写感觉思路更清晰且扩展性更强(我感觉是!)
总结:伪指令的用法
#ifndef
#define
#end
- S3C2240试验一---------I/O(原创)
- S3C2240试验一---------I/O续(原创)
- 试验一:基本I/O口功能设计
- I/O总结(一)
- I/O流(一)
- I/O流类库(一)
- I/O流(一)
- 初学 I/O (一)
- java-I/O(一)
- [原创]标准I/O(buffered I/O)浅析
- 初级 Java I/O 综述(一)
- I/O常见操作汇总(一)
- 初级 Java I/O 综述(一)
- 系统研究Java--I/O(一)
- I/O多路复用详解(一)
- C#之I/O系统(一)
- 黑马程序员--I O流(一)
- JAVA I/O(一) File类
- css让页面居中对齐方法总结
- IBM RAD 6.0 使用总结
- Access数据库中是/否在SQL中的数据表示
- sql-用一个表更新另一表问题
- 神奇3D圣诞树实现源码!
- S3C2240试验一---------I/O续(原创)
- Lua 5.0实现 4 函数和闭包
- delphi 2010 开发 ActiveX
- linux板级设备的初始化过程
- TLV格式和JAVABEAN的转换工具
- as3 socket
- as3 vector的运用
- as3 按钮通过索引都只取到-1
- 采用数据库为Flex Tree组件的提供数据-Java与LCDS