beautypg.com

Sundance SMT326v2 User Manual

Page 17

background image

Release

Page 17 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

outadd=-16;
mask = 2;}
else{
outadd=16;
mask=0;}
printf("Default mask = %d, choose 2 or 0\n",mask);
scanf("%d",&mask);

fpga =(unsigned long *)0x80200000+channel;
printf("Input on %8X, output on %8x\n\n", fpga, (fpga+outadd));
printf("Starting...\n");

while(1) {

while( ((*status) & 0x02) != mask)
/* printf("status reg1 = 0x%8X\n",*status);*/
sample= (*fpga);

*(fpga+outadd) = sample;
/* printf("status reg2 = 0x%8X\n",*status);*/
while( ((*status) & 0x02) == mask);
}

}

/*******************************************************************************
Functions

*******************************************************************************/
i2c_send_address(int add,int setnack)
{
volatile int delay;
*i2c_s1 = 0x40;
for(delay=0;delay!=175;delay++);
while((*i2c_s1 & 1) == 0);
*i2c_sn = add;
for(delay=0;delay!=175;delay++);
for(delay=0;delay!=175;delay++);
if(setnack == 1) *i2c_s1 = 0x44;
else *i2c_s1 = 0x45;
for(delay=0;delay!=175;delay++);
while((*i2c_s1 & 0x80) == 0x80);
for(delay=0;delay!=175;delay++);
}

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

i2c_stop()
{
volatile int delay;
*i2c_s1 = 0xc3;