в каком виде в переменной temp хранятся данные? Как посмотреть значение этой переменной? Proteus не показывает.
Вот весь код:
Код: Выделить всё
#include <mega8.h>
#asm
.equ __w1_port=0x15 ;PORTC //сообщаем куда подключен датчик
.equ __w1_bit=0
#endasm
#include <1wire.h>
#include <ds18b20.h>
// 0 1 2 3 4 5 6 7 8 9
const unsigned char codes[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
#define MAX_DS1820 2 //определяем количество устройств на линии 1-wire (в данном случае 2 датчика)
unsigned char rom_codes[MAX_DS1820][9]; //Определяем массив данных-кодов датчиков - по 9 символов в каждой записи
#include <stdio.h>
#include <delay.h>
int temp,x; // temp - датчик
void main(void)
{
unsigned char devices; //переменная в которой хранится количество присоеденённых датчиков
devices=w1_search(0xf0,rom_codes); //ищим датчики
PORTB=0x00; //PortB,PortD - выходы
DDRB=0xff;
PORTD=0x00;
DDRD=0xff;
while (1)
{
//#asm("cli");
temp=ds18b20_temperature(&rom_codes[0][0]); //в temp заносим данные датчика
//#asm("sei");
x=temp;
PORTB=0x00;
PORTD=0b11111110;
PORTB=codes[x];
};
}



