Cześć, dlaczego ten kod nie wyświetla temperatur. W pliku "ds18b20.h" zmieniłem tylko port na PC1. Robię wszystko jak w przykładzie w pliku main.c, a z moim LCD i diodą nic się nie dzieje. Tak jakby program zatrzymał się w połowie wykonywania kodu. Dlaczego tak jest i jak to naprawić?
Link do biblioteki
Kod:
/*
Atmega8A
*/
#include <avr/io.h>
#include <avr/delay.h>
#include <avr/interrupt.h>
#include <string.h>
#include <stdlib.h>
#include <ds18b20/ds18b20.c>
#include <uart/uart.c>
#include <hd44780.c>
#define UART_BAUD_RATE 2400
int main(void)
{
char buffer[100];
double d = 0;
uart_init(UART_BAUD_SELECT(UART_BAUD_RATE,F_CPU));
sei();
// Init LCD
LCD_Initalize();
DDRB |= (1 << PB0);
while(1)
{
d = ds18b20_gettemp();
dtostrf(d , 10, 3, buffer);
LCD_Clear();
LCD_GoTo(2, 0);
LCD_WriteText(buffer);
_delay_ms(500);
PORTB |= (1 << PB0);
_delay_ms(1000);
PORTB &= ~(1 << PB0);
_delay_ms(1000);
}
return 0;
}