Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Не могу подключить ds18b20

Непрочитано 05.03.2014, 18:56  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Не могу подключить ds18b20

Здравствуйте.
Собственно не могу подключить ds18b20 (датчик температуры) к микроконтроллеру ATmega8515.
Не пойму почему не хочет считывать температуру...

Схема в протеусе:


Код на C:
Код:
#include ‹mega8515.h›
#asm  
  .equ __w1_port=7; PORTE
  .equ __w1_bit=0 
#endasm
#include ‹1wire.h›      //библеотека для работы з 1wire
#include ‹ds18b20.h›    //библеотека для работы з ds18b20
#include ‹delay.h›
#define MAX_DS18b20 2

//numbers 
flash char digits[] = {
0b00111111,         //0
0b00000110,         //1 
0b01011011,         //2
0b01001111,         //3
0b01100110,         //4
0b01101101,         //5
0b01111101,         //6
0b00000111,         //7 
0b01111111,         //8
0b01101111,         //9
};

signed int tmp;    
unsigned char devices;
unsigned char rom_code[MAX_DS18b20][9];

void main( void )
{
    DDRC=0b00001000; 
    devices=w1_search(0xf0,rom_code); 
    while(1)
    {
        tmp= ds18b20_temperature(&rom_code[0][0]);
        if(tmp!=-9999) {
            PORTA=digits[1];
            delay_ms(100);
        }
        else
            PORTA=digits[0];
    }  
}
Реклама:

Последний раз редактировалось Astendos; 05.03.2014 в 18:59.
Astendos вне форума  
Непрочитано 05.03.2014, 19:53  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

какая версия CV? Из хэлпа:
Цитата:
The 1 Wire functions must be configured, by specifying the I/O port and bit used for communication through the 1 Wire protocol.
This is accomplished in the Project|Configure|C Compiler|Libraries|1 Wire menu:
· the Enable 1 Wire Bus Interface Support option must be activated
· the I/O Port and Bit must be specified in Data Connection.
Note: For compatibility with projects developed with CodeVisionAVR prior to V2.04.7, the 1 Wire functions can also be configured as outlined in the example below.
However in this case, the Enable 1 Wire Bus Interface Support option must be disabled in the Project|Configure|C Compiler|Libraries|1 Wire menu.
Example:
/* the 1 Wire bus is connected to ATmega8515 PORTB
the data signal is bit 2 */
#asm
.equ __w1_port=0x18
.equ __w1_bit=2
#endasm
/* now you can include the 1 Wire Functions */
#include ‹1wire.h›
This method is not recommended for new projects and it also does not support the XMEGA chips.
oleg110592 вне форума  
Непрочитано 05.03.2014, 21:09  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

CV(Code Vision AVR) у меня 3.10 EVALUATION (бесплатная )
Enable 1 Wire Bus Interface Support - у меня отключена (Она по стандарту отключена), если её включить то код перестаёт компилиться (в данном случае).
Astendos вне форума  
Непрочитано 05.03.2014, 22:00  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

тогда это убрать:
Код:
#asm  
  .equ __w1_port=7; PORTE
  .equ __w1_bit=0 
#endasm
и выбрать порт в настройках
Миниатюры:
Нажмите на изображение для увеличения
Название: cvavr_1wire.png
Просмотров: 80
Размер:	32.1 Кб
ID:	60118  
oleg110592 вне форума  
Непрочитано 05.03.2014, 22:48  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Как-то возникла нужда подключить четыре датчика, причем с простым и удобным монтажом (т.е., чтобы определять конкретный датчик не по его "ID", а по пину контроллера). Просто написал свою функцию чтения температуры обычным ногодрыгом.
Исходник сейчас уже не найду - воды много утекло. Но сложного там ничего.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 05.03.2014, 22:58  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Это не помогло.
картинка
Astendos вне форума  
Непрочитано 05.03.2014, 23:02  
Astendos
Частый гость
 
Регистрация: 05.03.2014
Сообщений: 14
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
Astendos на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

исходник+протеус

Большой шок меня подвергает то что на другом чипе почти с таким же кодом всё работает на ура...



исходники+протеус2

P.S. как сделать миниатюру (картинку на форуме)?

Последний раз редактировалось Astendos; 05.03.2014 в 23:34.
Astendos вне форума  
Непрочитано 05.03.2014, 23:16  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Сообщение от Astendos Посмотреть сообщение
твой пост тупо ни-о-чём.
Ну да, Сникерса нет. Уж извините за тупое предложение сделать самому. Острые ждут готовое.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 05.03.2014, 23:24  
Ara41
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.09.2006
Сообщений: 1,557
Сказал спасибо: 157
Сказали Спасибо 660 раз(а) в 430 сообщении(ях)
Ara41 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

Сообщение от Astendos Посмотреть сообщение
исходник+протеус
тактовую частоту контроллера в протеусе установите правильную. или в проекте..
Ara41 вне форума  
Сказали "Спасибо" Ara41
Astendos (07.03.2014)
Непрочитано 05.03.2014, 23:27  
oleg110592
Гражданин KAZUS.RUN
 
Регистрация: 05.04.2009
Сообщений: 973
Сказал спасибо: 35
Сказали Спасибо 154 раз(а) в 133 сообщении(ях)
oleg110592 на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

картинка - управление вложениями в расширенном режиме.
Этот код проверял в протеусе - работало:
Код:
#include ‹alcd.h› // Alphanumeric LCD Module functions
#include ‹ds18b20.h›
#include ‹delay.h›
#include ‹stdio.h›

char lcd_buffer[33];

/* maximum number of DS18B20 connected to the 1 Wire bus */
#define MAX_DEVICES 1

/* DS18B20 devices ROM code storage area */
unsigned char rom_code[MAX_DEVICES][9];

main()
{
lcd_init(16);
lcd_putsf("CodeVisionAVR\n1 Wire Bus Demo");
delay_ms(200);
lcd_clear();

/* measure and display the temperature(s) */
while (1)
      {
          sprintf(lcd_buffer,"%+.3f\xdfC",ds18b20_temperature(0));
          lcd_clear();
          lcd_puts(lcd_buffer);
          delay_ms(100);
      };
}
Миниатюры:
Нажмите на изображение для увеличения
Название: CV_ds18b20_lib.png
Просмотров: 92
Размер:	22.7 Кб
ID:	60124  
oleg110592 вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Как подключить веб-камеру от ноутбука iturup Видеотехника 5 01.07.2010 22:51
Как подключить двигатель сварочного полуавтомата Д-90С Levap Поиск схем. Делимся схемами 2 02.06.2010 10:23
[Решено] Как подключить мотор EINSHTEYNN Производственное оборудование 11 24.05.2010 22:18
Как подключить лампу дневного света через датчик движения? fipe Автоматика и аппаратура связи 7 03.08.2008 12:40
Матричный принтер СМ6337 как подключить? Ren Ремонт оргтехники 14 10.09.2005 00:50


Часовой пояс GMT +4, время: 00:33.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.