how to check SPI signals
I have changed the functions to read  8 bit and 16 bit registers then it worked.

unsigned int Bit_16(unsigned char cmd, unsigned int value) 
{
    unsigned int data; 
    SPCR = 0x5D;        // mode #3 F_CPU/16 
    ADC_CS = 0;                 // enable 
    spi(cmd);                   //Place instruction in communication register 
    data = spi(value &gt;&gt; 8);     // read hi-byte 
    data = (data &lt;&lt; 8) | spi(value);    // and lo-byte. 
    ADC_CS = 1;                 // disable 
    return data; 
} 


for write 

AD7798_16(0x08, 0x000A);