Sundance SMT326v2 User Manual
Page 17

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;