Ahoj přátelé,
už 2 dny se snažím zobrazit teplotu a tlak z čídla CMP085, ale dostávám chybé údaje.
Výstup je nějaký takovýto:
teplota BMP085: -2550°C
tlak BMP085: 44516Pa
No hlavní smyčku mám takovouto:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include "knihovny/uart.h"
#include "bmp.h"
#include "i2cmaster.h"
int32_t tlak=0, teplota=0;
int main(){
uart_init(9600); // inicializace uartu na rychlost 9600bd
i2c_init();
bmp_init();
char text[64]; //textovy retezec k odesilani po uartu
while(1){
tlak=bmp_get_up(); //nacteni tlaku
teplota=bmp_get_ut(); //nacteni teploty
bmp_convert(&teplota, &tlak); //zapnuti konverze
sprintf(text, "teplota BMP085: %ld°C\n", teplota); //vypis teploty
uart_puts(text);
sprintf(text, "tlak BMP085: %ldPa\n\n", tlak); //vypis tlaku
uart_puts(text);
_delay_ms(1500); // cakaj 1s
}
return 0;
}
Takt MCU je 16MHz.
Zde na odkazu přikládám pro jistotu i knihovny I2C a BMP085
Předem děkuji za pomoc