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

📄 iic.c

📁 DSP 5509A IIC通讯程序 特点: 1. C寄存器操作
💻 C
字号:
#include <csl.h>
#include <csl_chip.h>
#include <csl_gpio>
#include <csl_I2C.h>


	#define setMST (I2CMDR |= 0x0400)
	#define setTRX (I2CMDR |= 0x0200)
	#define clrTRX (I2CMDR &= 0xfdff)
	#define enI2C (I2CMDR |= 0x0020)
	#define disI2C (I2CMDR &= 0xffdf)
	#define setSTT (I2CMDR |= 0x2000)
	#define setSTP (I2CMDR |= 0x0800)
	#define setRM (I2CMDR |= 0x0080)
	#define clrRM (I2CMDR &= 0xff7f)
	#define setNACKMOD (I2CMDR |= 0x8000)

	#define sendByte(sndbyte) (I2CDXR = (sndbyte) & 0x00ff)
	#define setCNT(sndcnt) (I2CCNT = (sndcnt))
	#define setNACK ((I2CSTR) |= 0x0002)

	#define valBB (I2CSTR & 0x1000)
	#define valARDY (I2CSTR & 0x0004)
	#define valNACKSNT (I2CSTR & 0x2000)
	#define valXRDY (I2CSTR & 0x0010)
	#define valRRDY (I2CSTR & 0x0008)
	#define valNACK (I2CSTR & 0x0002)
	#define valI2CMDR I2CMDR
	#define valI2CSTR I2CSTR


void delay();

void main()
{
	int i=0;
	Int16 outdata, indata[0x20], initdata=0;


	CSL_init();


	initdata = 0;

	for (i=0;i<0x20;i++) indata[i]=0;
	{
		outdata = initdata++;
		disI2C;

		setMST;
		setTRX;
		setNACK;
		setRM;
		I2CCLKL = 0x0100;
		I2CCLKH = 0x0100;
		I2CSAR = 0x50;
		I2COAR = 0x01;
		I2CCNT = 0x10;

		enI2C;
	
		setSTT;
		do {
			if (valXRDY)
			{sendByte(0x00);
			break;}
		} while(1);

		do {
			if (valXRDY)
				{sendByte(0x00);
				break;}
		} while(1);

		for (i=0;i<0x020;i++)
		{
			do {
			if (valXRDY)
				{sendByte(outdata++);
				break;}
			} while(1);
		}
	}
	setSTP;
	delay();

	setMST;
	setTRX;
	setNACK;
	setRM;
	setSTT;

	do {
		if (valXRDY)
			{sendByte(0x00);
			break;}
	} while(1);

	do {
		if (valXRDY)
			{sendByte(0x00);
			break;}
	} while(1);

	clrTRX;
	setSTT;

	for (i=0;i<0x020;i++)
	{
		do {
			if (valRRDY)
				{indata[i]=I2CDRR;
				break;}
		} while(1);
	}
		
	setNACKMOD;
	delay();
	setSTP;
	delay();

	while(1){;}  //stop here
} 		 //end main

void delay()
{
	Uint32 j=0, k=0;
	for (j=0;j<0x5;j++)
	{
		for(k=0;k<0xffff;k++)
		{}
	}
}

⌨️ 快捷键说明

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