Ну вот, купил специально второй датчик для проверок в CodeVision
Код
#include <mega16.h>
// 1 Wire Bus functions
#asm
.equ __w1_port=0x1B;PORTA
.equ __w1_bit=4
#endasm
#include <1wire.h>
#include <ds18b20.h>
#include <stdio.h>
void main(void)
{
// USART initialization
UCSRA=0x00;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x0C;
// 1 Wire Bus initialization
w1_init();
if (ds18b20_init(NULL,0,0,DS18B20_12BIT_RES))
{
while (1)
{
/* measure and display the temperature(s) */
printf("t=%+.3f\xf8C\n\r",
ds18b20_temperature(NULL));
};
}
else
printf("error!");
while (1);
}
выдает ошибку на обоих датчиках...
от куда беруться такие напряжения (4.28В, см. выше)? Какие есть идеи?
Просто схема подключения элементарная, ну где там можно ошибиться....
Сообщение отредактировал Labinskiy Nikolay - Jul 26 2006, 09:15