[adStar EVM] 3축가속도 센서 테스트 - TFT LCD출력
[NET-EVM] 보드에는 I2C(SPI)로 연결되는 자이로, 가속도, 온도, 압력 센서등의 모듈을 연결할 수 있는 표준핀맵 커넥터가 있다.
SM-Type EVM 에는 핀 8번에, M-Type EVM에는 핀 P13번(adStar EVM의 P0.0)에 CS핀이 할당되어 있다.
adStar 가속도 센서 드라이버 코드
#define _SPI1_ENABLE 1
//-----------------------------------------------------------------------------
// myAccel3LV02 HAL
#define MY_ACCEL3LV02_SPI_MODE 1
#define MY_ACCEL3LV02_I2C_MODE 0
#define ACCEL_CS_BIT BIT0
#define ACCEL_CS_PORT GPIO0
#define ACCEL_CS_INIT() Sbi(*R_PAF0, GP_CFG(0));Sbi(*R_GP0ODIR, ACCEL_CS_BIT)
#define ACCEL_CS_ASSERT() cbi(ACCEL_CS_PORT, ACCEL_CS_BIT)
#define ACCEL_CS_DEASSERT() sbi(ACCEL_CS_PORT, ACCEL_CS_BIT)
#define ACCEL_SPI_INIT() SPI1_Init()
#define ACCEL_Read SPI1_WriteReadByte
#define ACCEL_Write SPI1_WriteReadByte
//-----------------------------------------------------------------------------
adStar 가속도 센서 테스트 동영상
가속도 센서 데이터를 TFT LCD에 출력하는 테스트
adStar 가속도 출력 테스트 소스코드
int main()
{
short data;
unsigned int accel;
unsigned char buf[6]={0,};
SystemInit();
Led1Init();
Led2Init();
Led1On();
Led2Off();
U0_Init(BAUD_38400);
DebugPrint("ADstar EVM1\r\n");
//가속도 센서 초기화
myAccel3lvInit();
//SPI1_SetSpeed(SPI_SPEED_4MHZ);
myAccel3lvWrite(CTRL_REG1, 0xC7);
data = myAccel3lvRead(WHO_AM_I);
DebugPrint("Who am I? 0x%02X\r\n", data);
InitDiaplay();
while(1)
{
GetAccelValue(AXIS_X, &data);
if(data&0x0800)accel = (data&0x7FF) -2048;
else accel = (data&0x7FF);
//DebugPrint("%d ", accel);
accel = (2048+accel)/10-100;
buf[0] = accel>>8;
buf[1] = (accel&0xFF);
GetAccelValue(AXIS_Y, &data);
if(data&0x0800)accel = (data&0x7FF) -2048;
else accel = (data&0x7FF);
accel = (2048+accel)/10-100;
//DebugPrint("%d\r\n", accel);
buf[2] = accel>>8;
buf[3] = (accel&0xFF);
DisplayPloat(SRL_CMD_PLOTY, buf, 4);
Delay(30);
}
return 0;
}