با سلام
می خواستم سنسور MPU-6050 (ژیروسکوپ و شتاب سنج) رو راه بندازم ولی قبلا با I2C کار نکردم. برنامه زیر رو برای امتحان نوشتم ولی lcd فقط 0 نشون میده.
می خواستم بدونم ایراد برنامه چیه. آدرس Slave=0b1101000 رجیستر که می خوام بخونم آدرسش 0x1c. اینم دیتاشیت سنسور. صفحه 38 و 39 درباره I2C توضیح داده.
http://invensense.com/mems/gyro/documents/PS-MPU-6000A.pdf
i2c_start();
i2c_write(0b11010000);
i2c_write(0x1C);
i2c_write(0x01);
i2c_stop();
i2c_start();
i2c_write(0b11010000);
i2c_write(0x1C);
i2c_start();
i2c_write(0b1101001);
test=i2c_read(0x);
i2c_stop();
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buff,"%d",test);
lcd_puts(buff);
delay_ms(200);
می خواستم سنسور MPU-6050 (ژیروسکوپ و شتاب سنج) رو راه بندازم ولی قبلا با I2C کار نکردم. برنامه زیر رو برای امتحان نوشتم ولی lcd فقط 0 نشون میده.
می خواستم بدونم ایراد برنامه چیه. آدرس Slave=0b1101000 رجیستر که می خوام بخونم آدرسش 0x1c. اینم دیتاشیت سنسور. صفحه 38 و 39 درباره I2C توضیح داده.
http://invensense.com/mems/gyro/documents/PS-MPU-6000A.pdf
i2c_start();
i2c_write(0b11010000);
i2c_write(0x1C);
i2c_write(0x01);
i2c_stop();
i2c_start();
i2c_write(0b11010000);
i2c_write(0x1C);
i2c_start();
i2c_write(0b1101001);
test=i2c_read(0x);
i2c_stop();
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buff,"%d",test);
lcd_puts(buff);
delay_ms(200);
دیدگاه