Например TDA7294

Форум РадиоКот • Просмотр темы - Всё по DS18(B/S)20.
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Ср авг 13, 2025 23:17:14

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 11, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср июл 18, 2012 22:34:26 
Опытный кот
Аватар пользователя

Карма: 8
Рейтинг сообщений: 106
Зарегистрирован: Ср фев 22, 2012 01:25:21
Сообщений: 882
Рейтинг сообщения: 0
Леонид Иванович писал(а):
А зачем прерывания запрещать на 600 мкс? Длительность импульса сброса сверху ничем не ограничена. От прерываний нужно защищать только интервал, где мы читаем presence, а это порядка 60 мкс.
О-о. Пасибочки. Я чет не догадался так зделать. А действительно 500 мкс сброса то, пусть хоть 1000 мкс длятся, т.е. тут прерывания можно не запрещать..... А вот перед тем как отпустить линию, да дождаться пресенс, можно запретить прерывания, но это уже сравнительно не много 15-60 мкс.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вс июл 22, 2012 20:32:25 
Встал на лапы
Аватар пользователя

Зарегистрирован: Вс апр 12, 2009 22:40:37
Сообщений: 117
Рейтинг сообщения: 0
Всем добрый день!
Вопрос по поводу функции
Код:
unsigned char w1_search(unsigned char cmd,void *p)
в CVAVR.
В параметре р ей передается указатель на заранее выделенный массив в раме для кодов устройств.
Цитата:
this function returns the number of devices connected to the 1 Wire bus.
If no devices were detected then it returns 0.
The byte cmd represents the Search ROM (F0h), Alarm Search (ECh) for the DS1820, DS18S20, or other similar commands, sent to the 1 Wire device.
The pointer p points to an area of SRAM where are stored the 8 bytes ROM codes returned by the device.

Такой вопрос, что будет, если массив будет на 2 устройства, а физически будет подключено три устройства?
Я так понимаю, в таком случае произойдет переполнение выделенного массива и эта функция "перепишет" данные в раме, которые не были выделены для массива кодов, а это очень плохо, т.к. может полностью "поломать" устройство :( А в хелпе об этом ни слова...

Есть ли какие-нибудь альтернативные проверенные библиотеки, где этот вопрос учтен?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср авг 01, 2012 13:27:21 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн янв 07, 2008 16:56:28
Сообщений: 302
Откуда: Минск
Рейтинг сообщения: 0
такая беда. подключаю 18б20 к контроллеру, температура -999. Т.е. контроллер не видит датчик. Поставил кварц на 12мгц. без результатов. Датчик подключал к другому устройству - там все работает - датчик исправен. Както нагреваю этот датчик паяльником и опа- показал контроллер температуру 104 градуса. Перестал греть, температура начала падать и примерно на 50 градусах датчик опять пропал (-999).
подтяжка 4.7к, полярность верна, кварц внешний на 12мгц, фузы 1111 (атмега8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср авг 01, 2012 13:30:00 
Друг Кота
Аватар пользователя

Карма: 82
Рейтинг сообщений: 1030
Зарегистрирован: Сб апр 02, 2011 12:40:46
Сообщений: 4779
Откуда: Минск
Рейтинг сообщения: 0
Глюк в программе?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср авг 01, 2012 16:46:31 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пн янв 07, 2008 16:56:28
Сообщений: 302
Откуда: Минск
Рейтинг сообщения: 0
так в этом проблема
Есть термометр на 2313. Я взял из него прогу для термометра, это 3 или 4 строки, вывод на индикатор (немножко побольше). На индикатор всё исправно выводит, в смысле подставляю в tepm число - число на индикаторе.

Потом я проставил метки в программе, программа всё делает что ей положенно, но дойдя до опроса датчика, датчик не находится. deviсe=0

Была похожая проблема, там оказалось косяк с подтяжкой был.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Ср авг 01, 2012 22:28:49 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Проблема в 458-ой строке программы.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Чт авг 23, 2012 19:13:34 
Встал на лапы

Зарегистрирован: Ср янв 18, 2012 19:37:10
Сообщений: 129
Рейтинг сообщения: 0
Друзья, есть у меня библиотека для Winavr по работе с датчиком ds18b20. прикладываю ее и описание по настройке. Много где видел ее использование, все говорят, что работает идеально, а у меня датчик при опросе температуры выдает 0xFF. Такой вопрос у меня датчик глючит или я балбес :)

Цитата:
Процесс интеграции 1-Wire библиотеки с проектом заключается в следующем:

- переписываем файлы библиотеки в папку проекта

- подключаем сишные файлы к проекту
OWIHighFunction.c
OWISWBitFunction.c
OWIUARTBitFunction.c
OWIcrc.c

- добавляем заголовочные файлы в main.c
#include "OWIPolled.h"
#include "OWIHighLevelFunctions.h"
#include "OWIBitFunctions.h"
#include "common_files\OWIcrc.h"

- настраиваем файл OWIPolled.h

- выбираем реализацию OneWire интерфейса – программную
#define OWI_SOFTWARE_DRIVER
//#define OWI_UART_DRIVER

- задаем тактовую частоту микроконтроллера
#define CPU_FREQUENCY 16.000

- задаем порт, к которому подключена OneWire шина
#define OWI_PORT PORTD //!< 1-Wire PORT Data register.
#define OWI_PIN PIND //!< 1-Wire Input pin register.
#define OWI_DDR DDRD //!< 1-Wire Data direction register.

- в main.c задаем вывод, к которому подключена OneWire шина
#define BUS OWI_PIN_7

Для GCC проектов в makefile нужно будет добавить все сишные файлы.
Например, так:

SRC = $(TARGET).c bcd.c lcd_lib.c OWISWBitFunctions.c OWIHighLevelFunctions.c OWIUARTBitFunctions.c common_files/OWIcrc.c?


Вложения:
1-wire-ds18b20-winavr.rar [101.37 KiB]
Скачиваний: 241
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Пн авг 27, 2012 11:24:23 
Вымогатель припоя
Аватар пользователя

Карма: 5
Рейтинг сообщений: 16
Зарегистрирован: Пн авг 27, 2012 10:38:20
Сообщений: 561
Откуда: Москва
Рейтинг сообщения: 0
День добрый.

Уважаемые писатели, поделитесь программой простого термометра на DS18B20 для процессора STM8S103. Заранее благодарен.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт авг 28, 2012 20:21:01 
Встал на лапы

Зарегистрирован: Ср янв 18, 2012 19:37:10
Сообщений: 129
Рейтинг сообщения: 0
Prosperous писал(а):
Друзья, есть у меня библиотека для Winavr по работе с датчиком ds18b20.

В общем все беды от незнания. Отличная библиотека, все работает на ура. Надо было учесть, что отладку необходимо проводить в режиме оптимизации по времени, при другой временные задержки не обрабатываются и датчик врет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 11:34:46 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
Что-то не могу найти в DS какой у неё Family code? Или слона не приметил.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 11:36:58 
Друг Кота
Аватар пользователя

Карма: 67
Рейтинг сообщений: 1060
Зарегистрирован: Чт сен 18, 2008 12:27:21
Сообщений: 19760
Откуда: Столица Мира Санкт-Петербург
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
28h

_________________
[ Всё дело не столько в вашей глупости, сколько в моей гениальности ] [ Правильно заданный вопрос содержит в себе половину ответа ]
Измерить нннада?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 17:56:42 
Держит паяльник хвостом
Аватар пользователя

Карма: 15
Рейтинг сообщений: 70
Зарегистрирован: Ср мар 28, 2012 21:45:24
Сообщений: 906
Откуда: ВО
Рейтинг сообщения: 0
:beer:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 22:58:34 
Открыл глаза

Зарегистрирован: Чт окт 29, 2009 23:22:03
Сообщений: 60
Рейтинг сообщения: 0
Добрый вечер уважаемые коты.
Пытаюсь собрать термометр на DS18b20, написал программку под LCD- все нормально работает.
Но возникла необходимость выводить температуру на семисигментник и тут началось.........
Вообщем ничего не показывает.
Ребята гляньте пожалуйста код и тыкните меня носом куда надо :)) .
я думаю ошибка где-то здесь
sot=(temp/100);
des =(temp%100)/10;
edi=(temp %100)%10;

заранее благодарен.
Код:
#include <mega8.h>               //áèáëèîòåêà ââîäà\âûâîäà
#include <delay.h>               //áèáëèîòåêà çàäåðæêè
#asm                             //ñîîáùàåì êóäà ïîäêëþ÷åí äàò÷èê
        .equ __w1_port=0x18; PORTC
        .equ __w1_bit=7
#endasm                 
/* #asm                             //ñîîáùàåì êóäà ïîäêëþ÷¸í ýêðàí
    .equ __lcd_port=0x12
#endasm
#include <lcd.h>                 //áèáëèîòåêà äëÿ LCD*/ 
#include <1wire.h>               //áèáëèîòåêà ðàáîòû ñ 1Wire
#include <ds18b20.h>             //áèáëèîòåêà äëÿ ðàáîòû ñ äàò÷èêîì ds18b20
#include <stdio.h>               
char lcd_buffer[33];             //ìàñèâ ñ äàííûìè äëÿ ýêðàíà
int temp; //ïåðåìåííàÿ äëÿ õðàíåíèÿ òåìïåðàòóðû
unsigned char devices;         //ïåðåìåííàÿ â êîòîðîé êîëè÷åñòâî ïðèñîåäåí¸ííûõ äàò÷èêîâ
unsigned char cifra [] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7d,0x07,0x7F,0x6F};// Ìàññèâ êîäîâ äëÿ ôîðìèðîâàíèÿ
int sot;//ïåðåìåííàÿ ñîòåí .....................
int des;//ïåðåìåííàÿ äåñÿòêîâ...................
int edi;//ïåðåìåííàÿ åäèíèö.................... 



             
////////////////ÈÍÄÈÊÀÖÈß////////////////////////////////
int q;
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
 
q++;//óâåëè÷èâàåì ñ÷¸ò÷èê äèíàìè÷åñêîé èíäèêàöèè 
 switch(q) //Ïåðåáîð îòîáðàæàåìîãî ñåé÷àñ ðàçðÿäà
       {case 1:PORTB=0b11101111;PORTD &= 0x80; PORTD|=cifra [edi];//âûâîä ïåðâîé öèôðû
break;
       case 2:PORTB=0b11011111;PORTD &= 0x80;PORTD|=cifra [des]; //âûâîä âòîðîé öèôðû
break;
       case 3:PORTB=0b10111111;PORTD &= 0x80;PORTD|=cifra [sot];//âûâîä òðåòüåé öèôðû
q=0;

break;}

if (q>=4)q=0;
}      
///////////////////////////////////////////////////////////////////
   



///////////////////ÌÅÐßÅÌ ÒÅÌÏÅÐÀÒÓÐÓ//////////////////////////////
void temperature()
{
if(devices>0)                 //áåñêîíå÷íûé öèêë, åñëè äàò÷èê ïîäêëþ÷îí
      {
          temp=ds18b20_temperature(0);  //÷èòàåì òåìïåðàòóðó 
          if (temp>1000){               //åñëè äàò÷èê âûäà¸ò áîëüøå 1000
             temp=4096-temp;            //îòíèìàåì îò äàííûõ 4096
             temp=-temp;                //è ñòàâèì çíàê "ìèíóñ"
          }
 sot=(temp/100); 
 des =(temp%100)/10;
 edi=(temp %100)%10;
        delay_ms(500); 
          }
       }
////////////////////////////////////////////////////////////////////////       
       
       
       
void main(void)                 
{
PORTB=0b00000000;
DDRB =0b01110000;
PORTC=0x00;
DDRC=0x00;
PORTD=0xff;
DDRD=0xff;
TCCR0=0x03;// Clock value: 125,000 kHz
TCNT0=0x00;
TIMSK=0x01; // Timer(s)/Counter(s) Interrupt(s) initialization                 
/* lcd_init(16);                    //èíèöèèëèçàöèÿ LCD*/ 
devices=w1_init();               //èùèì äàò÷èêè

// Global enable interrupts
#asm("sei")       
     
   
   
   
     
    while(1)
    { temperature();
     
        /*    sprintf(lcd_buffer,"%u - %u - %u",edi,des,sot);    //çàïèñóåìâ ìàñèâ äëÿ ýêðàíà òåìïåðàòóðó è âñ¸ òàêîå
          lcd_clear();                //÷èñòèì äèñïëåé ïåðåä âûâîäîì
          lcd_puts(lcd_buffer);        //âûâîäèì ìàñèâ íà LCD
          delay_ms(500);*/
 
    }
   
     
  }


Последний раз редактировалось Аlex Вт окт 02, 2012 23:03:02, всего редактировалось 1 раз.
Тег CODE


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:02:41 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Цитата:
Вообщем ничего не показывает.
А питание подали ? :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:05:47 
Открыл глаза

Зарегистрирован: Чт окт 29, 2009 23:22:03
Сообщений: 60
Рейтинг сообщения: 0
:)) подал,я же говорю с ЛСД все нормально показывает


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:08:37 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 1
Медали: 1
Получил миской по аватаре (1)
Цитата:
подал
А пыль с сегментников протёрли ? :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:09:39 
Открыл глаза

Зарегистрирован: Чт окт 29, 2009 23:22:03
Сообщений: 60
Рейтинг сообщения: 0
а разве надо :shock:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:10:27 
Модератор
Аватар пользователя

Карма: 90
Рейтинг сообщений: 1430
Зарегистрирован: Чт мар 18, 2010 23:09:57
Сообщений: 4568
Откуда: Планета Земля
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Надо бы конечно. Может из-за неё не показывает. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:12:10 
Открыл глаза

Зарегистрирован: Чт окт 29, 2009 23:22:03
Сообщений: 60
Рейтинг сообщения: 0
Аlex че-то мне не до шуток.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Всё по DS18(B/S)20.
СообщениеДобавлено: Вт окт 02, 2012 23:15:08 
Открыл глаза

Зарегистрирован: Чт окт 29, 2009 23:22:03
Сообщений: 60
Рейтинг сообщения: 0
elf писал(а):
Аlex че-то мне не до шуток.

Лутше оказали -бы дружескую помощь-неопытному :)) ,Вам свежим взглядов легче найти ошибку-а то я уже все глаза проглядел :))


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 1164 ]     ... , , , 11, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


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

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y