Всем привет и заранее спасибо.
Собрал проект "Термометр к ПК через COM порт" на atmega 8535
Вот код
#include <io.h>
#asm
.equ __w1_port=0x12;PORTD
.equ __w1_bit=4
#endasm
#include <1wire.h>
#include <delay.h>
#include <ds18b20.h>
#include <stdio.h>
void main(void)
{
float temp;
// USART initialization
// Communication Parameters: 8 Data, 1 Stop, No Parity
// USART Receiver: Off
// USART Transmitter: On
// USART Mode: Asynchronous
// USART Baud rate: 4800 (Double Speed Mode)
UCSRA=0x02;
UCSRB=0x08;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x6C;
w1_init();
while (1)
{
temp=ds18b20_temperature(0);
if(temp>1000)
{ temp=4096-temp;
temp=-temp;
}
printf("Temp=%d\n\r",temp);
};
}
в терминале показывает температуру 15360 или -9999 или другую чушь.
Подскажите В чем дело?