⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 keyboard_zlg.h

📁 贪吃蛇在arm版上的运行
💻 H
字号:
#include <stdio.h>#include <unistd.h>#include <fcntl.h>                                /* Îļþ²Ù×÷ */#include <sys/ioctl.h>				  /* ioctl()º¯Êý */#include "i2c.h"                                  /* I2C ÃüÁî */#define	 I2C_ADDR 	0x70                          /* zlg7290´Ó»úµØÖ· */int fd;int zlg7290_init();int zlg7290_getkey(unsigned short *key);int zlg7290_sndcmd(unsigned char dat1, unsigned char dat2);void zlg7290_disp(unsigned char *buf, unsigned char num);int zlg7290_init(){    int ret,i;    unsigned char buf[9];   	fd = open("/dev/i2c/0", O_RDWR);              /* ´ò¿ªÉ豸 */    if(fd == -1)    {        printf("Can't open I2C device!\n");        exit(-1);    }     ret = ioctl(fd, I2C_TENBIT, 0);               /* Ö¸¶¨´Ó»úµØÖ·Îª7bit */    if (ret != 0)    {    	printf("Can't set I2C address bit number.\n");    	close(fd);    	exit(-1);    }     ret = ioctl(fd, I2C_SLAVE, I2C_ADDR >> 1);    /* ÉèÖôӻúµØÖ·,7λµØÖ·,ÐëÓÒÒÆ1λ*/    if (ret != 0)    {    	printf("Can't set I2C slave device address.\n");    	close(fd);    	exit(-1);    }	/* ÉèÖÃI2C×ÜÏ߯µÂÊСÓÚ30KHz */	ret = ioctl(fd, I2C_S3C2410_SET_SPEED, 3);	  /* 3ΪI2C×ÜÏ߯µÂÊ·ÖÆµÖµ */  	if (ret != 0)	{		printf("Can't set I2C speed.\n");			close(fd);		exit(-1);	}		/* ¶ÁÈ¡I2C×ÜÏ߯µÂÊ */	    ret = ioctl(fd, I2C_S3C2410_GET_SPEED, &i);  	if (ret != 0)  	{		printf("Can't read I2C speed.\n");		close(fd);			exit(-1);  		  	}   	printf("I2C Speed is:%dKHz\n", i);    // S3C2410A //    buf[7] = 0x05;    buf[6] = 0x03;    buf[5] = 0x0C;    buf[4] = 0x02;    buf[3] = 0x04;    buf[2] = 0x01;    buf[1] = 0x00;    buf[0] = 0x0A;	/* ÏÔʾ S3C2410A */    zlg7290_disp(buf, 8);						 	    }/*********************************************************************************************************** Function name: zlg7290_getkey** Descriptions:  get the key value from zlg7290**                ´Ózlg7290È¡µÃ°´¼ü¼üÖµ	** Input: 		  unsigned short *key:  the gotten key value** Output: 		  0 : OK   -1: fail ** Created by:    Ming Yuan Zheng Ö£Ã÷Ô¶ ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/int zlg7290_getkey(unsigned short *key){    unsigned char temp[2];    temp[0] = 1;    temp[1] = 0;  read:  if (write(fd, temp, 1) != 1)				/* ·¢ËÍ×ÓµØÖ· */    	return -1;    		if (read(fd, temp, 2) != 2)					/* ¶ÁÈ¡¼üÖµ */		return -1;		*key = temp[0] + (temp[1] * 256);	if(*key != 0)	{		return 0;	}	return 1;}/*********************************************************************************************************** Function name: zlg7290_sndcmd** Descriptions:  send command to zlg7290**                Ïòzlg7290·¢ËÍÃüÁî** Input: 		  unsigned char dat1: command word 1				  unsigned char dat2: command word 2** Output: 		  0 : OK   -1: fail ** Created by:    Ming Yuan Zheng Ö£Ã÷Ô¶ ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/int zlg7290_sndcmd(unsigned char dat1, unsigned char dat2){    unsigned char temp[3];    temp[0] = 0x07;    temp[1] = dat1;    temp[2] = dat2;       if (write(fd, temp, 3) != 3)    	return -1;    	    usleep(1000);    return 0;}/*********************************************************************************************************** Function name: zlg7290_disp** Descriptions:  control zlg7290 to driver led**                ¿ØÖÆzlg7290Çý¶¯led** Input: 		  unsigned char *buf: display buffer				  unsigned char num: display number** Output: 		  NULL** Created by:    Ming Yuan Zheng Ö£Ã÷Ô¶ ** Created Date:  2006-01-09 **-------------------------------------------------------------------------------------------------------** Modified by:** Modified Date: **------------------------------------------------------------------------------------------------------********************************************************************************************************/void zlg7290_disp(unsigned char *buf, unsigned char num){    unsigned char i;    unsigned char temp[3];    for(i=0; i<num; i++)    {        temp[0] = 0x07;        temp[1] = 0x60+i;        temp[2] = *buf;        buf++;        write(fd, temp, 3);        usleep(5000);    }}/****************************************************************************                            End Of File**************************************************************************/

⌨️ 快捷键说明

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