Subversion Repositories Code-Repo

Compare Revisions

Ignore whitespace Rev 248 → Rev 251

/MSP430/MSP430_Audio_Cube/adxl345.c
6,10 → 6,12
* Writes the given byte to the register at the address
*/
void WriteSPI(unsigned char addr, unsigned char data) {
halSPISetPolarityPhase(1,1); // ADXL345 operates in SPI(1,1)
ADXL_CS_LOW();
spiSendByte(addr & ~ADXL_BYTE_WRITE);
spiSendByte(data);
ADXL_CS_HIGH();
halSPISetPolarityPhase(0,0); // Revert back to SPI(0,0)
}
 
/*
17,10 → 19,12
*/
unsigned char ReadSPI(unsigned char addr) {
unsigned char ret;
halSPISetPolarityPhase(1,1); // ADXL345 operates in SPI(1,1)
ADXL_CS_LOW();
spiSendByte(addr | ADXL_BYTE_READ);
spiReadFrame(&ret, 1);
ADXL_CS_HIGH();
halSPISetPolarityPhase(0,0); // Revert back to SPI(0,0)
return ret;
}
 
30,10 → 34,12
int Read16SPI(unsigned char addr) {
unsigned char recv[2];
int ret;
halSPISetPolarityPhase(1,1); // ADXL345 operates in SPI(1,1)
ADXL_CS_LOW();
spiSendByte(addr | ADXL_MULTI_BYTE_READ);
spiReadFrame(recv, 2);
ADXL_CS_HIGH();
halSPISetPolarityPhase(0,0); // Revert back to SPI(0,0)
ret = recv[0];
ret |= recv[1] << 8;
return ret;
82,7 → 88,7
*/
void ADXLInitInterrupts(void) {
// Set tap acceleration threshold (62.5mg/LSB, 0xFF=16g)
WriteSPI(ADXL345_REG_THRESH_TAP, 0x20);
WriteSPI(ADXL345_REG_THRESH_TAP, 0x18);
 
// Set maximum tap duration (625us/LSB)
WriteSPI(ADXL345_REG_DUR, 0xFF);
107,6 → 113,7
* Clears any active interrupt flags
*/
void ADXLClearInterrupts(void) {
ReadSPI(ADXL345_REG_ACT_TAP_STATUS);
ReadSPI(ADXL345_REG_INT_SOURCE);
}