В CVR собрал код для датчика температуры и датчика влажности в proteus всё работает
подключил к микроконтроллеру ds18b20, работает hih-4000 нет. В чем дело???
#include <mega8535.h>
#asm
.equ __w1_port=0x15;PORTC
.equ __w1_bit=2
#endasm
#include <1wire.h>
#include <delay.h>
#include <ds18b20.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x00
unsigned char devices;
unsigned char RomCode[2][9];
unsigned int read_v=0;
unsigned int v=0;
int t1;
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=0x40;
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}
void main(void)
{
UCSRA=0x00;
UCSRB=0x18;
UCSRC=0x86;
UBRRH=0x00;
UBRRL=0x19;
ACSR=0x80;
SFIOR=0x00;
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;
SFIOR&=0xEF;
devices=w1_search(DS18B20_SEARCH_ROM_CMD, RomCode);
while(1)
{
t1= ds18b20_temperature(&RomCode[0][0]);
if( t1> 1000 )
{ t1 = 4096- t1;
t1= -t1;}
read_v=read_adc(3);
v=read_v;
v=read_adc(3)*1.57664-258;
printf(" v=%u.%01u%%",v/10,v%10);
printf(" t1=%i\xf8C", t1);
printf(" %i", read_adc(0));
delay_ms(500);
printf("\r\r");
};
}