Sundance SMT326v2 User Manual
Page 23

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++);
}
-------------------------------------------------------------------------------------------------------------------------------------