config baudrate muda somente depois de iniciar x

1

Eu alterei um arquivo de configuração do i2c para que a taxa de transmissão atual seja 300000. Eu faço uma reinicialização e inicio um programa de verificação de taxa de transmissão i2c. sudo ./checkbr Mas o que eu recebo parece ser configurações de taxa de transmissão usual (padrão). Então eu faço um startx e carrego um gui. Eu abro um terminal e faço os mesmos passos. Depois do sudo ./checkbr, estou obtendo a taxa de transmissão desejada = 300000. Por que não consigo obter 300000 sem x servidor carregado? Eu também tentei remover i2c_bcm2708 e adicioná-lo novamente com baudrate = 300000, mas ainda sem resultados, a menos que eu faça startx. Se for importante, eu verifico uma taxa de transmissão com um pedaço de código em c ++ que lê dados de i2c em um loop e mede o tempo necessário para lê-los. No caso do servidor X desligado, recebo uma velocidade de leitura 3x mais lenta do que com um X iniciado. Aqui está o código.

  for (;;) {
        I2CInterface.readRegister(MPU6050_ADDRESS, MPU6050_RA_ACCEL_XOUT_H, 14, data);
        oldTime = curTime;
        clock_gettime(CLOCK_REALTIME, &curTime);
        dt = ( (static_cast<int64_t>(curTime.tv_sec)*1000000000 + static_cast<int64_t>     (curTime.tv_nsec)) - (static_cast<int64_t>(oldTime.tv_sec)*1000000000 + 
        static_cast<int64_t>(oldTime.tv_nsec)) ) /1000000000.0;
        printf( "%7f \n", dt);
   }

I2CInterface.readRegister últimos 2 parâmetros são o número de bytes e onde armazená-lo.

    
por user3081123 21.02.2015 / 20:46

0 respostas