Собственно сам исходник:
Код: Выделить всё
#include <mega8.h> //Включаем библиотеку для работы с микроконтроллером ATMega8
#include <delay.h> // Задержки
#include <stdlib.h> // Переводим int в char
#asm
.equ __lcd_port=0x18 ;PORTB LCD
.equ __w1_port=0x12 ;PORTD DS18B20
.equ __w1_bit=0 ; BIT0 DS18B20
#endasm
#include <lcd.h> //Включаем библиотеку для работы с LCD
#include <1wire.h> // 1-wire
#include <ds18b20.h> // DS18B20
char _str1[]="Devices found!"; // Выводим на экран если 1-wire нашло
char _str2[]="No devices!"; // Если нет
unsigned char _temp[]; // Где хранится температура
int temper; // Температура с датчика
void main(void)
{
temper=ds18b20_temperature( 0 ); // Получаем температуру с датчика
itoa(temper, _temp ); // Переводим int в char для возможности вывода на LCD
// Инициализируем ЖК
lcd_init(16); // В начало ЖК
lcd_gotoxy(0,0);
if (w1_init()){ // Если устройства 1-wire нашло
lcd_clear(); // Чистим ЖК
lcd_puts(_str1); // Пишим, что что-то есть на ЖК
} else { lcd_puts(_str2); // Если 1-wire устройств не обнаружено
lcd_puts(_temp); // Пишем, что совсем хреново
}
}
И конечно же схема:
http://s008.radikal.ru/i306/1105/31/cf11b21d344c.jpg
Подскажите пожалуйста, где пробой.