'EXP-NET'에 해당되는 글 1건

  1. 2012.12.28 [adStar EVM] 3축가속도 센서 테스트 - TFT LCD출력
[MCU]/adStar2012. 12. 28. 23:30

[adStar EVM] 3축가속도 센서 테스트 - TFT LCD출력

 [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;
}

 

Posted by nexp

댓글을 달아 주세요