테스트 동영상
")//]]> Cortex-M3 STM32 USB를 이용하여 각도값 표시
안녕하세요. 이 센서를 쓰고 있는 유저인데
데이터값이 제대로 잘 안나오네요
16비트 dsp28335를 쓰고있는데요
////////main.c
DSP28x_usDelay(1800000); // #.1
/*
for(i = 6; i > 0 ; i--)
{
DATA = (spi_read_Press(0x07, 1) & 0xFF);// #4, read STATUS register --> LSB '0'=OK
if(!(DATA & 0x0001))break;
DSP28x_usDelay(300000);
}
if(i == 0)
{
//SCP1000 에러
DSP28x_usDelay(10000);
return;
}
*/
spi_write_Press(0x022D);
spi_write_Press(0x0103);
spi_write_Press(0x0302);
DSP28x_usDelay(1500000);
DSP28x_usDelay(3000000);
spi_write_Press(0x0300);
DSP28x_usDelay(1200000);
spi_write_Press(0x030A);
DSP28x_usDelay(0x0309);
DSP28x_usDelay(3000000);
////////spi.c
void spi_write_Press(WORD tdata)
{
BYTE a,b;
a=tdata&0xFF00;
b=tdata&0x00FF;
a=a<<2;
GpioDataRegs.GPADAT.bit.GPIO9=0;
SpiaRegs.SPITXBUF=a;
delay_loop();
SpiaRegs.SPITXBUF=b;
GpioDataRegs.GPADAT.bit.GPIO9=1;
}
WORD spi_read_Press(BYTE tdata, BYTE type)
{
WORD rdata=0;
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 0;
SpiaRegs.SPIFFRX.bit.RXFIFORESET = 1;
tdata = tdata;
GpioDataRegs.GPADAT.bit.GPIO9=0;
SpiaRegs.SPITXBUF=tdata; //tdata 2byte -> 1byte
while(type-- > 0)
{
rdata <<=8;
rdata |= SpiaRegs.SPIRXBUF;
}
GpioDataRegs.GPADAT.bit.GPIO9=1;
return rdata;
}
/////////interrupt.c
WORD temp_data=0;
WORD pressure=0;
temp_data = spi_read_Press(0x1F, 1); //Read MSB pressure data - 3 lower bits
pressure = spi_read_Press(0x20, 2);
PieCtrlRegs.PIEACK.all = PIEACK_GROUP1;
이런식으로 테스트를 하고있는데......
데이터값이 이상하게 나와요 ㅠㅠ
댓글을 달아 주세요
안녕하세요 궁금한게 있어서 그런데 3축으로 지자기값을 측정해서 각도값을
2009.09.10 00:10 [ ADDR : EDIT/ DEL : REPLY ]구하는 공식좀 알수 있을련지요..가르쳐주시면 감사하겠습니다