Witam
Od paru tygodni próbuję uruchomić termometr na atmega8. Teoretycznie działa ale tylko do 70 stopni C, powyżej wyświetla 0,0. Korzystam z rklibavr. Proszę o pomoc
Zamieszczam kod
Od paru tygodni próbuję uruchomić termometr na atmega8. Teoretycznie działa ale tylko do 70 stopni C, powyżej wyświetla 0,0. Korzystam z rklibavr. Proszę o pomoc
Zamieszczam kod
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <string.h>
#include <stdlib.h>
#include "delay.h"
#include "ds18x20.h"
#include "ds18x20.c"
#include <hd44780.c>
char strvolt[7];
uint8_t gSensorIDs[OW_ROMCODE_SIZE];
uint8_t tekst[20];
volatile float f_value;
uint16_t decicelsius;
uint8_t diff, crc_m, start_m, i, subzero, cel, cel_frac_bits;
int main( void )
{
LCD_Initalize();
#ifndef OW_PORT
OW_set_bus(&PORTC,0);
#endif
while(1)
{
DS18X20_start_meas( DS18X20_POWER_PARASITE, NULL) ;
delayms( DS18B20_TCONV_12BIT );
DS18X20_read_meas_single( DS18B20_ID, &subzero, &cel, &cel_frac_bits );
decicelsius = DS18X20_temp_to_decicel( subzero, cel, cel_frac_bits );
LCD_Clear();
LCD_WriteText("Temp:");
LCD_GoTo(6,0);
f_value=(float)decicelsius/10;
dtostrf(f_value,1,1,strvolt);
LCD_WriteText(strvolt);
LCD_WriteText(" 'C");
}
}