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

📄 i2c.c.svn-base

📁 SDP文件解析代码
💻 SVN-BASE
字号:
/* *       i2c for frv , cmmb * ===================================================================================== *        Version:  1.0 *        Created:  2008年01月25日 11时50分01秒 CST *       Compiler:  gcc *         Author:  kf701 (linux), kf701.ye AT gmail.com *        Company:  CodeRepertory *      CopyRight:  Copyright (c) 2008 kf701 *        SVNinfo:  $Id$ * ===================================================================================== */#include "i2c.h"#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/ioctl.h>#include <unistd.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>uint8_t read_i2c(int port){	int fd = open("/dev/frvcmmb", O_RDWR);	i2c_t buf = {port, 0x7f};	ioctl( fd, 1, &buf );	close(fd);	return buf.value;}void write_i2c(int port, int value){	int fd = open("/dev/frvcmmb", O_RDWR);	i2c_t buf = {port, value};	ioctl( fd, 2, &buf );	close(fd);}void enable_cmmb_device(void){	int fd = open("/dev/frvcmmb", O_RDWR);	ioctl( fd, 3, 1 );	close(fd);}void disable_cmmb_device(void){	int fd = open("/dev/frvcmmb", O_RDWR);	ioctl( fd, 3, 0 );	close(fd);}void cmmbip_change(uint32_t addr_type, char *ip, uint16_t port){#define I2C_IP_ADDR1    0x7#define I2C_IP_ADDR2    0x8#define I2C_IP_ADDR3    0x9#define I2C_IP_ADDR4    0xA#define I2C_IP_ADDR5    0xB#define I2C_IP_ADDR6    0xC#define I2C_IP_ADDR7    0xD#define I2C_IP_ADDR8    0xE#define I2C_IPPM_PORT   0xF#define I2C_IP_PROTOCOL 0x18	if( 1 == addr_type ) /* ipv4 */	{		/* step 1 */		write_i2c( I2C_IPPM_PORT, addr_type - 1 );		/* step 2 */		uint32_t netaddr = inet_addr(ip);		netaddr = ntohl(netaddr);		uint16_t left, right;		left = netaddr & 0xFFFF;		right = (netaddr >> 16) & 0xFFFF;		write_i2c( I2C_IP_ADDR7, left );		write_i2c( I2C_IP_ADDR8, right );		/* step 3 */		write_i2c( I2C_IPPM_PORT, port );	}	else if( 2 == addr_type ) /* ipv6 */	{		printf("IPV6 not implement now\n");	}}void cmmb_set_fb_fps(){	int frvpmp_dev;	frvpmp_dev = open("/dev/frvpmp", O_RDWR);	ioctl(frvpmp_dev, CMMB_CHANGE_FB, FB_FPS_25);}void cmmb_restore_fb_fps(){	int frvpmp_dev;	frvpmp_dev = open("/dev/frvpmp", O_RDWR);	ioctl(frvpmp_dev, CMMB_CHANGE_FB, FB_FPS_15);}

⌨️ 快捷键说明

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