beautypg.com

Sundance SMT326v2 User Manual

Page 23

background image

Release

Page 23 of 24

SMT326 DSP PC/ISA System User Guide

Document Name:

SMT326 Ugv2.doc

Original Date: 08/11/97

Product Name:

SMT326

Revision Date: 08/26/99

Author:

Graeme Parker – Fabio Ancona

for(delay=0;delay!=10000;delay++);
}

i2c_read(int setnack)
{
volatile int delay;
for(delay=0;delay!=10000;delay++);
while((*i2c_s1 & 0x80) == 0x80);
for(delay=0;delay!=10000;delay++);
if(setnack == 1) *i2c_s1 = 0x40;
for(delay=0;delay!=10000;delay++);
return(*i2c_sn);
}

i2c_stop()
{
volatile int delay;
*i2c_s1 = 0xc3;
for(delay=0;delay!=10000;delay++);
while((*i2c_s1 & 0xff) != 0x81); /* printf("%02X\n",*i2c_s1 & 0xff); */
for(delay=0;delay!=10000;delay++);
}

i2c_write(int data)
{
volatile int delay;
*i2c_sn = data;
for(delay=0;delay!=10000;delay++);
while((*i2c_s1 & 0x80) == 0x80);
for(delay=0;delay!=10000;delay++);
}

i2c_restart(int address, int setnack)
{
volatile int delay;
while((*i2c_s1 & 0x80) == 0x80);
if(setnack == 1) *i2c_s1 = 0x44;
else *i2c_s1 = 0x45;
for(delay=0;delay!=10000;delay++);
*i2c_sn=address;
for(delay=0;delay!=10000;delay++);
while((*i2c_s1 & 0x80) == 0x80);
for(delay=0;delay!=10000;delay++);
}

-------------------------------------------------------------------------------------------------------------------------------------