默れ

ADXL345 SPI寄存器设置

0
阅读(11845)

首先进行寄存器设置,以下是程序代码:

 #include <ADuC7026.h>

#include "Common.h"
 
BYTE RXBYTE;
extern unsigned int r_data[];
unsigned char spiwrite(unsigned int data){
 
    unsigned char r_data;
    
    SPITX = (0xFF & (data));      
    while ((SPISTA & 0x08) != 0x08) ; 
    r_data = SPIRX;        
 
    return r_data;
 
}   
 
BYTE spiread(unsigned int data){                //read 1 Byte data
 
    
    SPITX = (0xFF & (data));                    //Send dummy date
    while ((SPISTA & 0x08) != 0x08) ; 
    data = SPIRX;                               // recieve high-byte
 
    return data;
 
}
 
void spiMread(unsigned int data, BYTE RXCONT){  //read 1 Byte data
 
    RXBYTE = 0x00;
    while(RXBYTE<RXCONT){
        SPITX = (0xFF & (data));                //Send dummy date
        while ((SPISTA & 0x08) != 0x08) ; 
        r_data[RXBYTE] = SPIRX;                 // recieve high-byte
        RXBYTE++;
    }         
 
}
 
void spiread_16bit(unsigned int data, BYTE *data_H, BYTE *data_L){      //read 16bit data
 
    
    SPITX = (0xFF & (data));                    //Send dummy date
    while ((SPISTA & 0x08) != 0x08) ; 
    *data_H = SPIRX;                            // recieve high-byte
    SPITX = (0xFF & (data));                    //Send dummy data
    while ((SPISTA & 0x08) != 0x08) ; 
    *data_L = SPIRX;                            // recieve low-byte
 
}