www.pudn.com > SEEDVPM642_esam.rar > seeddm642_cpld.c


/**************************************************************************/ 
/*  Copyright 2003 by SEED.                                               */ 
/*  All rights reserved. Property of SEED.                                */ 
/**************************************************************************/ 
  
/* 
 *  ======== seeddm642_cpld.c ======== 
 *  CPLD module for the SEEDDM642 
 */ 
 
#include  
#include "seeddm642.h" 
 
/* Read an 8-bit value from a CPLD register */ 
Uint8 SEEDDM642_rget(Int16 regnum) 
{ 
    Uint8 *pdata; 
     
    /* Return lower 8 bits of register */ 
    pdata = (Uint8 *)(SEEDDM642_CPLD_BASE + regnum); 
    return (*pdata & 0xff); 
} 
 
/* Write an 8-bit value to a CPLD register */ 
void SEEDDM642_rset(Int16 regnum, Uint8 regval) 
{ 
    Uint8 *pdata; 
     
    /* Write lower 8 bits of register */ 
    pdata = (Uint8 *)(SEEDDM642_CPLD_BASE + regnum); 
    *pdata = (regval & 0xff); 
} 
 
/* Spin in a delay loop for delay iterations */ 
void SEEDDM642_wait(Uint32 delay) 
{ 
    volatile Uint32 i, n; 
     
    n = 0; 
    for (i = 0; i < delay; i++) 
    { 
        n = n + 1; 
    } 
} 
 
/* Spin in a delay loop for delay microseconds */ 
void SEEDDM642_waitusec(Uint32 delay) 
{ 
    SEEDDM642_wait(delay * 21); 
}