2440 GPIO 控制方法
2008-11-26 14:35
148 查看
作者:wogoyixikexie@gliet
// GPIO Virtual alloc
s2440IOP = (volatile S3C2440A_IOPORT_REG *) VirtualAlloc(0,sizeof(S3C2440A_IOPORT_REG),MEM_RESERVE, PAGE_NOACCESS);
if(s2440IOP == NULL) {
RETAILMSG(1,(TEXT("For s2440IOP: VirtualAlloc failed!/r/n")));
}
else {
if(!VirtualCopy((PVOID)s2440IOP,(PVOID)(S3C2440A_BASE_REG_PA_IOPORT >> 8),sizeof(S3C2440A_IOPORT_REG),PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE )) {
RETAILMSG(1,(TEXT("For s2440IOP: VirtualCopy failed!/r/n")));
}
}
//====================================================================
//----------GPG8 Setting------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
//v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
//v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出低电平,指示灯灭。
//----------GPG8 Setting------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
//v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
//v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出低电平,指示灯灭。尽管上拉了。
//----------GPG8 Setting------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
//v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出高电平,指示灯亮
//------------------GPG8 Setting------------------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
//v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出高电平,指示灯亮——即使没有使能上拉,看来2440IO的驱动能力挺强的。
转载请标明wogoyixikexie@gliet桂林电子科技大学一系科协,如有错误,希望能够留言指出。
// GPIO Virtual alloc
s2440IOP = (volatile S3C2440A_IOPORT_REG *) VirtualAlloc(0,sizeof(S3C2440A_IOPORT_REG),MEM_RESERVE, PAGE_NOACCESS);
if(s2440IOP == NULL) {
RETAILMSG(1,(TEXT("For s2440IOP: VirtualAlloc failed!/r/n")));
}
else {
if(!VirtualCopy((PVOID)s2440IOP,(PVOID)(S3C2440A_BASE_REG_PA_IOPORT >> 8),sizeof(S3C2440A_IOPORT_REG),PAGE_PHYSICAL | PAGE_READWRITE | PAGE_NOCACHE )) {
RETAILMSG(1,(TEXT("For s2440IOP: VirtualCopy failed!/r/n")));
}
}
//====================================================================
//----------GPG8 Setting------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
//v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
//v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出低电平,指示灯灭。
//----------GPG8 Setting------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
//v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
//v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出低电平,指示灯灭。尽管上拉了。
//----------GPG8 Setting------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
//v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出高电平,指示灯亮
//------------------GPG8 Setting------------------------
v_pIOPregs->GPGCON &= ~(0x3 << 16);
v_pIOPregs->GPGCON |= (0x1 << 16);
v_pIOPregs->GPGDAT &= ~(0x1 << 8);//输出低电平
v_pIOPregs->GPGDAT |= (0x1 << 8);//输出高电平
v_pIOPregs->GPGUP |= (0x1 << 8);//禁止上拉,在上电没有执行程序的时候上拉高电平输出
//v_pIOPregs->GPGUP &= ~(0x1 << 8);//使能上拉
--------这样GPG8输出高电平,指示灯亮——即使没有使能上拉,看来2440IO的驱动能力挺强的。
转载请标明wogoyixikexie@gliet桂林电子科技大学一系科协,如有错误,希望能够留言指出。
相关文章推荐
- erlang下 BeagleBone的GPIO控制实验、以及自带led点亮方法
- 树莓派实现web控制GPIO教程(安装方法更简单,网页效果更好)
- 全志A20控制GPIO口的一种方法:
- Android(Linux)控制GPIO方法二
- tq2440 GPIO口控制驱动的编写中的一些问题
- Android(Java)控制GPIO的方法及耗时分析
- 树莓派GPIO高级控制方法
- 用C#控制TQ2440开发板上的LED小灯(C# GPIO学习笔记)
- jz2440裸板开发之GPIO:用按键控制led
- mini2440之GPIO控制按键的方法
- 用C#控制TQ2440开发板上的LED小灯(C# GPIO学习笔记)
- RIoTboard连载六 RIoTboard配置和控制GPIO的两种方法
- s5pv210的gpio控制方法
- Linux GPIO控制方法
- 用C#控制TQ2440开发板上的LED小灯(C# GPIO学习笔记)
- Android(Linux)控制GPIO的方法及实时性分析
- CodeSmith实用技巧(九):重载Render方法来控制输出
- 前台控制后台方法来控制样式。
- 控制方法只有相应权限才可执行
- Javascript通过overflow控制列表闭合与展开的方法