void mpu6050_init(int fd) { sleep(1); set_i2c_register(fd,MPU6050ADDR,PWR_MGMT_1,0x00); //msleep(10); set_i2c_register(fd,MPU6050ADDR,SMPLRT_DIV,0x07); //set_i2c_register(fd,MPU6050ADDR,SMPLRT_DIV,0x04); //msleep(10); set_i2c_register(fd,MPU6050ADDR,CONFIG,0x06); //set_i2c_register(fd,MPU6050ADDR,CONFIG,0x0b); //msleep(10); set_i2c_register(fd,MPU6050ADDR,ACCEL_CONFIG,0x00); //msleep(10); set_i2c_register(fd,MPU6050ADDR,GYRO_CONFIG,0x18); //msleep(10); }
int main(int argc, char **argv) { int i2c_file; int8_t x, y, z; /* The readings are 8 bits and signed */ /* Open a connection to the I2C userspace control file */ if ((i2c_file = open(I2C_FILE_NAME, O_RDWR)) < 0) { /* Error Indication */ perror("Unable to open i2c control file"); exit(1); } /* Success Indication */ // printf("Initialized\n"); /* Set control register */ if( set_i2c_register(i2c_file, MMA7455_I2CADDR, MMA7455_CTRLADDR, 0x45) ) { /* Error Indication */ printf("Unable to set control register!\n"); return -1; } /* Success Indication */ // printf("Set control register successfully\n"); // MOje // while (1) { /* Read X, Y, and Z from the register */ if( get_i2c_register(i2c_file, MMA7455_I2CADDR, MMA7455_XOUT8, &x) || get_i2c_register(i2c_file, MMA7455_I2CADDR, MMA7455_YOUT8, &y) || get_i2c_register(i2c_file, MMA7455_I2CADDR, MMA7455_ZOUT8, &z) ) { /* Error Indication */ printf("Unable to read register\n"); return -1; } /* Success Indication */ /* Debug line that prints out registers */ printf("%d\t|%d\t|%d\n", x, y, z); // } /* Cleanup and Exit */ close(i2c_file); return 0; }
int main(int argc, char **argv) { int i2c_file; // Open a connection to the I2C userspace control file. if ((i2c_file = open(I2C_FILE_NAME, O_RDWR)) < 0) { perror("Unable to open i2c control file"); exit(1); } if(argc > 3 && !strcmp(argv[1], "r")) { int addr = strtol(argv[2], NULL, 0); int reg = strtol(argv[3], NULL, 0); unsigned char value; if(get_i2c_register(i2c_file, addr, reg, &value)) { printf("Unable to get register!\n"); } else { printf("Register %d: %d (%x)\n", reg, (int)value, (int)value); } } else if(argc > 4 && !strcmp(argv[1], "w")) { int addr = strtol(argv[2], NULL, 0); int reg = strtol(argv[3], NULL, 0); int value = strtol(argv[4], NULL, 0); if(set_i2c_register(i2c_file, addr, reg, value)) { printf("Unable to get register!\n"); } else { printf("Set register %x: %d (%x)\n", reg, value, value); } } else { fprintf(stderr, USAGE_MESSAGE, argv[0], argv[0]); } close(i2c_file); return 0; }