Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > термометр в codevision ds18b20


Автор: skalish 2.10.2008, 19:00
Я новичок в программировании пытаюсь собрать термометр в codevisionavr  з двома датчиками температуры DS18B20 , МК ATMEGA8 и LCD LM016L
При запуске,МК находит только один датчик. Что я делаю не так?


#include <mega8.h>
#asm
   .equ __w1_port=0x15 ;PORTC
   .equ __w1_bit=0
#endasm
#include <1wire.h>
#include <ds18b20.h>
#define MAX_DS1820 8
unsigned char rom_codes[MAX_DS1820][9];
#include <stdio.h>             
char lcd_buffer[33];
#include <delay.h> 
#asm
   .equ __lcd_port=0x18 ;PORTB
#endasm
#include <lcd.h>
int temp[8];

void main(void)
{
  unsigned char devices,i;
lcd_init(16);
delay_ms(200);



devices=w1_search(0xf0,rom_codes);


sprintf(lcd_buffer,"  devices=%u",devices);      // devices = 1 ): ???
          lcd_clear();                  
          lcd_puts(lcd_buffer);         
          delay_ms(2000);               



while (1)
      { 
      
        temp[0]=ds18b20_temperature(&rom_codes[i][0]);
        
        if (temp>1000){               
            temp[0]=4096-temp[0];            
             temp[0]=-temp[0];                
          }
          sprintf(lcd_buffer,"t=%i.%u\xdfC",temp[0],temp[0]%1);    
          lcd_clear();                  
          lcd_puts(lcd_buffer);         
          delay_ms(500);                

      };
}

Автор: J0ker 3.10.2008, 00:33
Цитата(skalish @  2.10.2008,  19:00 Найти цитируемый пост)
Что я делаю не так?

обращаешься не по адресу
тебе сюда:
http://forum.vingrad.ru/forum/tech-controllers-programming.html

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)