This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

msp430g2553 with mpu6050



i know sprintf can be use with UART_Write_String(), code run not error but not transfer data to computer, please explain to me!! here my code (my project get data from mpu6050 then send to computer by UART , my ccs v6)


#define USE_CLOCK
#define USE_I2C_USCI
#define USE_MPU6050
#define USE_UART

////////////////////////////////////////////////////////////////////////////////
////

#define MPU6050_ADDRESS 0x68

#define MPU6050_RA_XG_OFFS_TC 0x00
#define MPU6050_RA_YG_OFFS_TC 0x01
#define MPU6050_RA_ZG_OFFS_TC 0x02
#define MPU6050_RA_X_FINE_GAIN 0x03
#define MPU6050_RA_Y_FINE_GAIN 0x04
#define MPU6050_RA_Z_FINE_GAIN 0x05
#define MPU6050_RA_XA_OFFS_H 0x06
#define MPU6050_RA_XA_OFFS_L_TC 0x07
#define MPU6050_RA_YA_OFFS_H 0x08
#define MPU6050_RA_YA_OFFS_L_TC 0x09
#define MPU6050_RA_ZA_OFFS_H 0x0A
#define MPU6050_RA_ZA_OFFS_L_TC 0x0B
#define MPU6050_RA_XG_OFFS_USRH 0x13
#define MPU6050_RA_XG_OFFS_USRL 0x14
#define MPU6050_RA_YG_OFFS_USRH 0x15
#define MPU6050_RA_YG_OFFS_USRL 0x16
#define MPU6050_RA_ZG_OFFS_USRH 0x17
#define MPU6050_RA_ZG_OFFS_USRL 0x18
#define MPU6050_RA_SMPLRT_DIV 0x19
#define MPU6050_RA_CONFIG 0x1A
#define MPU6050_RA_GYRO_CONFIG 0x1B
#define MPU6050_RA_ACCEL_CONFIG 0x1C
#define MPU6050_RA_FF_THR 0x1D
#define MPU6050_RA_FF_DUR 0x1E
#define MPU6050_RA_MOT_THR 0x1F
#define MPU6050_RA_MOT_DUR 0x20
#define MPU6050_RA_ZRMOT_THR 0x21
#define MPU6050_RA_ZRMOT_DUR 0x22
#define MPU6050_RA_FIFO_EN 0x23
#define MPU6050_RA_I2C_MST_CTRL 0x24
#define MPU6050_RA_I2C_SLV0_ADDR 0x25
#define MPU6050_RA_I2C_SLV0_REG 0x26
#define MPU6050_RA_I2C_SLV0_CTRL 0x27
#define MPU6050_RA_I2C_SLV1_ADDR 0x28
#define MPU6050_RA_I2C_SLV1_REG 0x29
#define MPU6050_RA_I2C_SLV1_CTRL 0x2A
#define MPU6050_RA_I2C_SLV2_ADDR 0x2B
#define MPU6050_RA_I2C_SLV2_REG 0x2C
#define MPU6050_RA_I2C_SLV2_CTRL 0x2D
#define MPU6050_RA_I2C_SLV3_ADDR 0x2E
#define MPU6050_RA_I2C_SLV3_REG 0x2F
#define MPU6050_RA_I2C_SLV3_CTRL 0x30
#define MPU6050_RA_I2C_SLV4_ADDR 0x31
#define MPU6050_RA_I2C_SLV4_REG 0x32
#define MPU6050_RA_I2C_SLV4_DO 0x33
#define MPU6050_RA_I2C_SLV4_CTRL 0x34
#define MPU6050_RA_I2C_SLV4_DI 0x35
#define MPU6050_RA_I2C_MST_STATUS 0x36
#define MPU6050_RA_INT_PIN_CFG 0x37
#define MPU6050_RA_INT_ENABLE 0x38
#define MPU6050_RA_DMP_INT_STATUS 0x39
#define MPU6050_RA_INT_STATUS 0x3A
#define MPU6050_RA_ACCEL_XOUT_H 0x3B
#define MPU6050_RA_ACCEL_XOUT_L 0x3C
#define MPU6050_RA_ACCEL_YOUT_H 0x3D
#define MPU6050_RA_ACCEL_YOUT_L 0x3E
#define MPU6050_RA_ACCEL_ZOUT_H 0x3F
#define MPU6050_RA_ACCEL_ZOUT_L 0x40
#define MPU6050_RA_TEMP_OUT_H 0x41
#define MPU6050_RA_TEMP_OUT_L 0x42
#define MPU6050_RA_GYRO_XOUT_H 0x43
#define MPU6050_RA_GYRO_XOUT_L 0x44
#define MPU6050_RA_GYRO_YOUT_H 0x45
#define MPU6050_RA_GYRO_YOUT_L 0x46
#define MPU6050_RA_GYRO_ZOUT_H 0x47
#define MPU6050_RA_GYRO_ZOUT_L 0x48
#define MPU6050_RA_EXT_SENS_DATA_00 0x49
#define MPU6050_RA_EXT_SENS_DATA_01 0x4A
#define MPU6050_RA_EXT_SENS_DATA_02 0x4B
#define MPU6050_RA_EXT_SENS_DATA_03 0x4C
#define MPU6050_RA_EXT_SENS_DATA_04 0x4D
#define MPU6050_RA_EXT_SENS_DATA_05 0x4E
#define MPU6050_RA_EXT_SENS_DATA_06 0x4F
#define MPU6050_RA_EXT_SENS_DATA_07 0x50
#define MPU6050_RA_EXT_SENS_DATA_08 0x51
#define MPU6050_RA_EXT_SENS_DATA_09 0x52
#define MPU6050_RA_EXT_SENS_DATA_10 0x53
#define MPU6050_RA_EXT_SENS_DATA_11 0x54
#define MPU6050_RA_EXT_SENS_DATA_12 0x55
#define MPU6050_RA_EXT_SENS_DATA_13 0x56
#define MPU6050_RA_EXT_SENS_DATA_14 0x57
#define MPU6050_RA_EXT_SENS_DATA_15 0x58
#define MPU6050_RA_EXT_SENS_DATA_16 0x59
#define MPU6050_RA_EXT_SENS_DATA_17 0x5A
#define MPU6050_RA_EXT_SENS_DATA_18 0x5B
#define MPU6050_RA_EXT_SENS_DATA_19 0x5C
#define MPU6050_RA_EXT_SENS_DATA_20 0x5D
#define MPU6050_RA_EXT_SENS_DATA_21 0x5E
#define MPU6050_RA_EXT_SENS_DATA_22 0x5F
#define MPU6050_RA_EXT_SENS_DATA_23 0x60
#define MPU6050_RA_MOT_DETECT_STATUS 0x61
#define MPU6050_RA_I2C_SLV0_DO 0x63
#define MPU6050_RA_I2C_SLV1_DO 0x64
#define MPU6050_RA_I2C_SLV2_DO 0x65
#define MPU6050_RA_I2C_SLV3_DO 0x66
#define MPU6050_RA_I2C_MST_DELAY_CTRL 0x67
#define MPU6050_RA_SIGNAL_PATH_RESET 0x68
#define MPU6050_RA_MOT_DETECT_CTRL 0x69
#define MPU6050_RA_USER_CTRL 0x6A
#define MPU6050_RA_PWR_MGMT_1 0x6B
#define MPU6050_RA_PWR_MGMT_2 0x6C
#define MPU6050_RA_BANK_SEL 0x6D
#define MPU6050_RA_MEM_START_ADDR 0x6E
#define MPU6050_RA_MEM_R_W 0x6F
#define MPU6050_RA_DMP_CFG_1 0x70
#define MPU6050_RA_DMP_CFG_2 0x71
#define MPU6050_RA_FIFO_COUNTH 0x72
#define MPU6050_RA_FIFO_COUNTL 0x73
#define MPU6050_RA_FIFO_R_W 0x74
#define MPU6050_RA_WHO_AM_I 0x75

////

#include <wchar.h>
#include "stdio.h"
//#include "string.h"
//#include "mymath.h"
#include <math.h>
#include "msp430g2553.h"
#include "UART.h"
#include "Global.h"
#include "Clock.h"
#include "I2C_USCI.h"
//#include "MPU6050.h"
//#include "MSP430_UART.h"

int temp=0,i=0;
int abc=0;
char buff[50];

//Chu y Gyro bi sai so tinh khong dong nhat khi goc quay thay doi
// Khong tinh duoc vi phan cua gyro
//
unsigned char GYRO_XFilter[4],GYRO_YFilter[4],GYRO_ZFilter[4];
unsigned char ACCEL_XFilter[4],ACCEL_YFilter[4],ACCEL_ZFilter[4];
unsigned char G_Filter[4];
//Gia tri sai so tinh cua cam bien
unsigned int TEMP_OUT = 0;
//int
unsigned char GYRO_XOUT = 0,
GYRO_YOUT = 0,
GYRO_ZOUT = 0,
GYRO_XOUT_OFFSET = 250,//-237,//104,
GYRO_YOUT_OFFSET = -170,//-9,
GYRO_ZOUT_OFFSET = 8,//-197,
GYRO_XRATE = 0,
GYRO_YRATE = 0,
GYRO_ZRATE = 0,
GYRO_XANGLE = 0,
GYRO_YANGLE = 0,
GYRO_ZANGLE = 0,
gyro_ratio = 4;

char dt=1;
int ACCEL_XOUT = 0,
ACCEL_YOUT = 0,
ACCEL_ZOUT = 0,
ACCEL_XOUT_PAST=0, //
ACCEL_YOUT_PAST=0,
ACCEL_ZOUT_PAST=0,
ACCEL_XA =0,
ACCEL_YA =0,
ACCEL_ZA =0,
ACCEL_XV = 0,
ACCEL_YV = 0,
ACCEL_ZV = 0,
ACCEL_XDECAC=0,
ACCEL_YDECAC=0,
ACCEL_ZDECAC=0;

float ACCEL_XANGLE =0,
ACCEL_YANGLE =0,
ACCEL_ZANGLE =0;
//
#ifndef cbi
#define cbi(port, bit) (port) &= ~(1 << (bit))
#endif
#ifndef sbi
#define sbi(port, bit) (port) |= (1 << (bit))
#endif

//
void UART_Write_Int(unsigned long n)
{
unsigned char buffer[16];
unsigned char i,j;

if(n == 0) {
UART_Write_Char('0');
return;
}

for (i = 15; i > 0 && n > 0; i--) {
buffer[i] = (n%10)+'0';
n /= 10;
}

for(j = i+1; j <= 15; j++) {
UART_Write_Char(buffer[j]);
}
}
//
void Filters_Gyro()
{
GYRO_XFilter[3] = GYRO_XFilter[2];
GYRO_XFilter[2] = GYRO_XFilter[1];
GYRO_XFilter[1] = GYRO_XFilter[0];
GYRO_XFilter[0] = GYRO_XOUT;

GYRO_XOUT = ((long)GYRO_XFilter[3]
+GYRO_XFilter[2]
+GYRO_XFilter[1]
+GYRO_XFilter[0])>>2;

GYRO_YFilter[3] = GYRO_YFilter[2];
GYRO_YFilter[2] = GYRO_YFilter[1];
GYRO_YFilter[1] = GYRO_YFilter[0];
GYRO_YFilter[0] = GYRO_YOUT;

GYRO_YOUT = ((long)GYRO_YFilter[3]
+GYRO_YFilter[2]
+GYRO_YFilter[1]
+GYRO_YFilter[0])>>2;

GYRO_ZFilter[3] = GYRO_ZFilter[2];
GYRO_ZFilter[2] = GYRO_ZFilter[1];
GYRO_ZFilter[1] = GYRO_ZFilter[0];
GYRO_ZFilter[0] = GYRO_ZOUT;

GYRO_ZOUT = ((long)GYRO_ZFilter[3]
+GYRO_ZFilter[2]
+GYRO_ZFilter[1]
+GYRO_ZFilter[0])>>2;
}
void Filters_Accel()
{
ACCEL_XFilter[3] = ACCEL_XFilter[2];
ACCEL_XFilter[2] = ACCEL_XFilter[1];
ACCEL_XFilter[1] = ACCEL_XFilter[0];
ACCEL_XFilter[0] = ACCEL_XOUT;
ACCEL_XOUT = (ACCEL_XFilter[3]
+ACCEL_XFilter[2]
+ACCEL_XFilter[1]
+ACCEL_XFilter[0])/4;

ACCEL_YFilter[3] = ACCEL_YFilter[2];
ACCEL_YFilter[2] = ACCEL_YFilter[1];
ACCEL_YFilter[1] = ACCEL_YFilter[0];
ACCEL_YFilter[0] = ACCEL_YOUT;
ACCEL_YOUT = (ACCEL_YFilter[3]+ACCEL_YFilter[2]+ACCEL_YFilter[1]+ACCEL_YFilter[0])/4;

ACCEL_ZFilter[3] = ACCEL_ZFilter[2];
ACCEL_ZFilter[2] = ACCEL_ZFilter[1];
ACCEL_ZFilter[1] = ACCEL_ZFilter[0];
ACCEL_ZFilter[0] = ACCEL_ZOUT;
ACCEL_ZOUT = (ACCEL_ZFilter[3]+ACCEL_ZFilter[2]+ACCEL_ZFilter[1]+ACCEL_ZFilter[0])/4;
}

//
//
void Setup_MPU6050()
{
while(ByteWrite_I2C_USCI(MPU6050_RA_SIGNAL_PATH_RESET,0x07));

_delay_ms(1000);
//Sets sample rate to 1000/1+1 = 500Hz
while(ByteWrite_I2C_USCI(MPU6050_RA_SMPLRT_DIV,9));
//Disable FSync, 48Hz DLPF
while(ByteWrite_I2C_USCI(MPU6050_RA_CONFIG, 0x03));
//Disable gyro self tests, scale of 500 degrees/s
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_CONFIG, 0x18));
//Disable accel self tests, scale of +-4g, no DHPF
while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_CONFIG, 0x18));

while(ByteWrite_I2C_USCI(MPU6050_RA_TEMP_OUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_TEMP_OUT_L,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_XOUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_XOUT_L,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_YOUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_YOUT_L,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_ZOUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_GYRO_ZOUT_L,0x00));

while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_XOUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_XOUT_L,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_YOUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_YOUT_L,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_ZOUT_H,0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_ACCEL_ZOUT_L,0x00));
//Freefall threshold of <|0mg|
while(ByteWrite_I2C_USCI( MPU6050_RA_FF_THR, 0x00));
//Freefall duration limit of 0
while(ByteWrite_I2C_USCI( MPU6050_RA_FF_DUR, 0x00));
//Motion threshold of >0mg
while(ByteWrite_I2C_USCI( MPU6050_RA_MOT_THR, 0x00));
//Motion duration of >0s
while(ByteWrite_I2C_USCI( MPU6050_RA_MOT_DUR, 0x00));
//Zero motion threshold
while(ByteWrite_I2C_USCI(MPU6050_RA_ZRMOT_THR, 0x00));
//Zero motion duration threshold
while(ByteWrite_I2C_USCI( MPU6050_RA_ZRMOT_DUR, 0x00));
//Disable sensor output to FIFO buffer
while(ByteWrite_I2C_USCI( MPU6050_RA_FIFO_EN, 0x00));

//AUX I2C setup
//Sets AUX I2C to single master control, plus other config
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_MST_CTRL, 0x00));
//Setup AUX I2C slaves
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV0_ADDR, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV0_REG, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV0_CTRL, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV1_ADDR, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV1_REG, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV1_CTRL, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV2_ADDR, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV2_REG, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV2_CTRL, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV3_ADDR, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV3_REG, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV3_CTRL, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV4_ADDR, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV4_REG, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV4_DO, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV4_CTRL, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV4_DI, 0x00));


//MPU6050_RA_I2C_MST_STATUS //Read-only
//Setup INT pin and AUX I2C pass through
while(ByteWrite_I2C_USCI( MPU6050_RA_INT_PIN_CFG, 0x00));
//Enable data ready interrupt
while(ByteWrite_I2C_USCI(MPU6050_RA_INT_ENABLE, 0x01));

//Slave out, dont care
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV0_DO, 0x00));
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_SLV1_DO, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV2_DO, 0x00));
while(ByteWrite_I2C_USCI(MPU6050_RA_I2C_SLV3_DO, 0x00));
//More slave config
while(ByteWrite_I2C_USCI( MPU6050_RA_I2C_MST_DELAY_CTRL, 0x00));
//Reset sensor signal paths
while(ByteWrite_I2C_USCI(MPU6050_RA_SIGNAL_PATH_RESET, 0x00));
//Motion detection control
while(ByteWrite_I2C_USCI(MPU6050_RA_MOT_DETECT_CTRL, 0x00));
//Disables FIFO, AUX I2C, FIFO and I2C reset bits to 0
while(ByteWrite_I2C_USCI(MPU6050_RA_USER_CTRL, 0x00));
//Sets clock source to gyro reference w/ PLL
while(ByteWrite_I2C_USCI(MPU6050_RA_PWR_MGMT_1, 0x00));
//Controls frequency of wakeups in accel low power mode plus the sensor standby modes
while(ByteWrite_I2C_USCI(MPU6050_RA_PWR_MGMT_2, 0x00));

_delay_ms(1000);
}
//

void Get_Accel_Values()
{
unsigned char rData[6];
WordRead_I2C_USCI(MPU6050_RA_ACCEL_XOUT_H, rData, 6);
ACCEL_XOUT = ((rData[1]<<8)|rData[0]);
ACCEL_YOUT = ((rData[3]<<8)|rData[2]);
ACCEL_ZOUT = ((rData[5]<<8)|rData[4]);
//Filters_Accel();
}
//
//
void Get_Gyro_Values()
{
unsigned char rData[6];

WordRead_I2C_USCI(MPU6050_RA_GYRO_XOUT_H, rData, 6);
GYRO_XOUT = ((rData[1]<<8)|rData[0]) + GYRO_XOUT_OFFSET;
GYRO_YOUT = ((rData[3]<<8)|rData[2]) + GYRO_YOUT_OFFSET;
GYRO_ZOUT = ((rData[5]<<8)|rData[4]) + GYRO_ZOUT_OFFSET;
Filters_Gyro();
}
//

void _itoa(int n, char str[], int he)
{
int i=0,j=0;
unsigned char dau=0;
char ch[]="0123456789ABCDEF";
if(n==0)str[0]=ch[0];
if(n<0)
{
dau=1;
n*=-1;
}

while(n)
{
str[i]=ch[n%he];
n /= he;
i++;
}
if(dau==1){str[i]='-';i++;}
for(j=0;j<i/2;j++)
str[j] ^= str[i-j-1] ^= str[j] ^= str[i-j-1];
str[i]=0;
}

void _itoa_unsigned(unsigned int n, char str[], int he)
{
unsigned int i=0,j=0;
char ch[]="0123456789ABCDEF";
if(n==0)str[0]=ch[0];

while(n)
{
str[i]=ch[n%he];
n /= he;
i++;
}
for(j=0;j<i/2;j++)
str[j] ^= str[i-j-1] ^= str[j] ^= str[i-j-1];
str[i]=0;
}

double myabs(double x)
{
return ((x>=0)?x:(-x));
}

// cach tinh can 2 của a : x_(n+1) = (x_n + a / x_n) / 2
float mysqrt(float a)
{
float xo, xn=1, e= 0.000001;
do
{
xo=xn;
xn=(a/xo+xo)/2.0;
}
while (myabs(xn-xo)>e);
return xn;
}
float mypow(float x,int y) //x mu y
{
float ans=1;
int i=0;
for(i=0;i<y;i++)
ans*=x;
return ans;
}
long myfact(int n)
{
long ans=1;
for(n;n>0;n--)ans*=n;
return ans;
}

float mysin(float a)
{
float y=0;
int dau,n=0;
while(n<10)
{
if(n%2!=0)dau=-1;
else dau=1;
y=(float)dau*mypow(a,2*n+1)/myfact(2*n+1);
n++;
}
return y;
}


//
void main()
{
WDTCTL = WDTPW | WDTHOLD;
Select_Clock(DCO_16MHZ);
BCSCTL1 = CALBC1_16MHZ;
DCOCTL = CALDCO_16MHZ;
BCSCTL1 |= XT2OFF;
//Setup MCLK
BCSCTL2 = SELM_0;
_delay_cycles(100000);


P1DIR|=BIT0;
UART_Init();
UART_Write_Char(10); //Ky tu xuong dong
UART_Write_String("connect success 10");

UART_Write_Char(10); //Ky tu xuong dong
_delay_cycles(100000);
Init_I2C_USCI(MPU6050_ADDRESS);

_delay_cycles(320000);
Get_Accel_Values();

Get_Gyro_Values();

ACCEL_XOUT = 0;
ACCEL_YOUT = 0;
ACCEL_ZOUT = 0;
ACCEL_XOUT_PAST=0; //
ACCEL_YOUT_PAST=0;
ACCEL_ZOUT_PAST=0;
ACCEL_XA =0;
ACCEL_YA =0;
ACCEL_ZA =0;
ACCEL_XV = 0;
ACCEL_YV = 0;
ACCEL_ZV = 0;
ACCEL_XDECAC=0;
ACCEL_YDECAC=0;
ACCEL_ZDECAC=0;
_delay_cycles(1000000);
//__bis_SR_register(GIE); //Cho phep ngat hoat dong

while(1)
{
//Get_Gyro_Values();
P1OUT^=BIT0;

UART_Write_Char('1');
sprintf(buff,"%d",ACCEL_XOUT);
UART_Write_String(buff);
UART_Write_Char(' ');
//_delay_cycles(10000);
UART_Write_Char('2');
sprintf(buff,"%d",ACCEL_YOUT);
UART_Write_String(buff);
UART_Write_Char(' ');
//_delay_cycles(10000);
UART_Write_Char('3');
sprintf(buff,"%d",ACCEL_ZOUT);
UART_Write_String(buff);
UART_Write_Char(' ');
_delay_cycles(10000);
Get_Accel_Values();
}
}


// Timer A0 interrupt service routine
#pragma vector=TIMER0_A0_VECTOR
__interrupt void Timer_A0 (void)
{
//__bic_SR_register_on_exit(LPM3_bits); // Clear LPM3 bits from 0(SR)
}

please help me!!

  • This forum is for questions and discussion about C/C++ compilers released by TI.  I don't really understand your question, but I don't think it has much to do with the compiler.  For example, we who watch this forum know nothing about a MPU6050.  

    That said, here are a few things to consider ...

    Make sure you are not overflowing the stack.

    Those particular sprintf calls can be replaced by calling UART_Write_Int instead.  That probably works better.

    Thanks and regards,

    -George

  • thanks for answer, George. i am sorry but i replaced by calling UART_Write_Int instead, program not work, that problem in while loop @@ thanks so much !!