unsigned int CMPS03_get_angle(char address)
{
unsigned int dc_angle;
dc_angle = i2c_read(address,2) <<8; // Читаем старший бит угла
dc_angle += i2c_read(address,3); // Читаем младший бит угла
return dc_angle;
};
unsigned int SRF08_get_range(char address)
{
unsigned int us_range;
i2c_transmit(address,0,0x51); // Даём команду на запуск сонара, указав результат вернуть в сантиметрах
debug_print("SRF08_get_range transmited\n");
_delay_ms(70); // Ждем 70мс, пока сонар проведёт измерение
//на след строчке виснет
us_range = i2c_read(address,2) <<8; // Читаем старший бит расстояния
debug_print("First byte\n");
us_range += i2c_read(address,3); // Читаем младший бит расстояния
debug_print("Second byte\n");
return us_range;
};
unsigned int range;
i2c_transmit(0xE0,0,0x51); // Даём команду на запуск сонара, указав результат вернуть в сантиметрах
_delay_ms(70); // Ждем 70мс, пока сонар проведёт измерение
range = i2c_read(0xE0,2) <<8; // Читаем старший бит расстояния
range += i2c_read(0xE0,3); // Читаем младший бит расстояния
printf("Range: %d\n",range); //Покажем результат по уарту
_delay_ms(930); //Ждем 0.930 сек (мерять будем раз в секунду)
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7