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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
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.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
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
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,771 раз(а) в 5,896 сообщении(ях)
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
Адрес: Краснодар, возле укротворного моря.
Сообщений: 18,856
Сказал спасибо: 2,532
Сказали Спасибо 11,771 раз(а) в 5,896 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Не могу подключить ds18b20

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

Сообщение от Astendos Посмотреть сообщение
исходник+протеус
тактовую частоту контроллера в протеусе установите правильную. или в проекте..
Ara41 вне форума  
Сказали "Спасибо" Ara41
Astendos (07.03.2014)
Непрочитано 05.03.2014, 23:27  
oleg110592
Гражданин KAZUS.RU
 
Регистрация: 05.04.2009
Сообщений: 976
Сказал спасибо: 35
Сказали Спасибо 155 раз(а) в 134 сообщении(ях)
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, время: 15:10.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot