欢迎来到虫虫下载站 | 资源下载 资源专辑 关于我们
虫虫下载站

w83977ef_gpio.c

瑞泰创新的GX-ARM9-2410EP教学实验系统的所有基础实验源代码,内容齐全,解析清楚,基本上每个实验结果都有图片显示
C
字号:
#include <string.h>
#include "2410addr.h"
#include "2410lib.h"
#include "def.h"
#include "w83977af.h"
#include "w83977ef_gpio.h"


static unsigned int efbase = W977_EFIO_BASE;
static unsigned int efio = W977_EFIO_BASE;
static unsigned int iobase[] = { 0x180, 0x280, ~0, ~0 };


int w83977ef_gpio_init(void)
{
		
		int version;
		int i=0;
		unsigned char readchar;
	
		
		
		w977_efm_enter(efbase);
  
		readchar = w977_read_reg(0x20 ,efbase);
	    Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x20,readchar);	
		readchar = w977_read_reg(0x21 ,efbase);
	    Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x21,readchar);	
		
		
		readchar = w977_read_reg(0x23 ,efbase);
	    Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x23,readchar);	
		readchar = w977_read_reg(0x2a ,efbase);
	    Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x2a,readchar);	

	    Uart_Printf("write Addr: %x, reg: %x, data: %x\n",efbase,0x2a,readchar);	
		w977_write_reg(0x2a ,0xd9, efbase);
		readchar = w977_read_reg(0x2a ,efbase);
	    Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x2a,readchar);	

	    Uart_Printf("write Addr: %x, reg: %x, data: %x\n",efbase,0x2c,readchar);	
		w977_write_reg(0x2c ,0x55, efbase);
		readchar = w977_read_reg(0x2c ,efbase);
	    Uart_Printf("Addr: %x, reg: %x, data: %x\n",efbase,0x2c,readchar);	

//***************************************
		//configure the GP14 OUTPUT
 		w977_select_device(W977_DEVICE_GPIO1, efbase);
 		
 		/* Configure PnP port, */
 		w977_write_reg(0x60, (iobase[i] >> 8) & 0xff, efbase);
 		w977_write_reg(0x61, (iobase[i]) & 0xff, efbase);
 		
 		
 		// Configure GP1 BASIC OUTPUT 
 		w977_write_reg(0xE0, 0x00, efbase);
 		w977_write_reg(0xE1, 0x00, efbase);
 		w977_write_reg(0xE2, 0x00, efbase);
 		w977_write_reg(0xE3, 0x00, efbase);
 		w977_write_reg(0xE4, 0x00, efbase);
 		w977_write_reg(0xE5, 0x00, efbase);
 		w977_write_reg(0xE6, 0x00, efbase);
 		w977_write_reg(0xE7, 0x00, efbase);
 		
 		// Activate device */
 		w977_write_reg(0x30, 0x01, efbase);
 		
 		
 		w977_efm_exit(efbase);
 		
 		return 1;
 		
}


void w83977_gpio_write(unsigned char value)
{
	outb(value,W977_BASE+iobase[0]);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -