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

📄 i2c_test.c

📁 I2C programming in ecos RTOS.
💻 C
字号:
/***************************************************************************
* Copyright  Faraday Technology Corp 2002-2003.  All rights reserved.      *
*--------------------------------------------------------------------------*
* Name:I2C_test.c                                                          *
* Description: I2C test program                           				   *
* Author: Allen Hsu                                                          *
****************************************************************************/

#include <cyg/io/i2c.h>
#include <cyg/infra/cyg_type.h>
#include <cyg/hal/pmu_support.h>
#include <cyg/hal/codec_support.h>
#include <cyg/hal/sysc_support.h>
#include "stdio.h"
#include "stdlib.h"
#include <cyg/hal/plf_io.h>



int main(void)
{
	int i,test;
	cyg_uint8 addr,data;
	cyg_int32 ret;
	for (test = 0; test < 5;test++){
			data = test;		
		for(i=0;i<0x100;i++){
			addr = i;
				
			cyg_i2c_transaction_begin(&hal_fie702x_i2c_eeprom);
			
			ret = cyg_i2c_transaction_tx(&hal_fie702x_i2c_eeprom, true, &addr, 1, false);
			cyg_thread_delay(1);			
			if(ret != 0) 
			{
				cyg_i2c_transaction_end(&hal_fie702x_i2c_eeprom);
				diag_printf("I2C eeprom R/W Test fail  1\n");				
				return -1;
			}
			
			ret = cyg_i2c_transaction_tx(&hal_fie702x_i2c_eeprom, false, &data, 1, true);
			cyg_thread_delay(1);			
			if(ret != 0) 
			{
				cyg_i2c_transaction_end(&hal_fie702x_i2c_eeprom);
				diag_printf("I2C eeprom R/W Test fail  2\n");						
				return -1;
			}
			
			cyg_i2c_transaction_end(&hal_fie702x_i2c_eeprom);	
//			cyg_thread_delay(1);
			
		}

		for (i=0;i<0x100;i++){
			addr = i;
			cyg_i2c_transaction_begin(&hal_fie702x_i2c_eeprom);
			if(cyg_i2c_transaction_tx(&hal_fie702x_i2c_eeprom, true, &addr, 1, false) != ENOERR) {
				cyg_i2c_transaction_end(&hal_fie702x_i2c_eeprom);
				diag_printf("I2C eeprom R/W Test fail  4\n");						
				return -1;
			}
			cyg_thread_delay(1);
			cyg_i2c_transaction_rx(&hal_fie702x_i2c_eeprom, true, &data, 1, true, true);
			cyg_thread_delay(1);
			cyg_i2c_transaction_end(&hal_fie702x_i2c_eeprom);
	//		cyg_thread_delay(1);
			if(data != test){
				diag_printf("I2C eeprom R/W Test fail 5\n");
				return -1;
			}
		
		}
		diag_printf("EEPROM I2C R/W test  %d\n", test);

	}

	diag_printf("I2C eeprom R/W Test pass \n");

}

⌨️ 快捷键说明

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