Страница 2 из 6

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 19:06:35
Starichok51
AVK, именно, что поиск, так как Search в переводе именно поиск.
а чтение по англицки пишется совсем по другому.

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 20:04:27
AVK
У меня нет проблем с английским. Эта функция читает ромкоды датчиков. Результатом ее работы являются коды всех датчиков подключенных на шину. Просто для одного датчика есть команда READ_ROM а для нескольких SEARCH_ROM но делают они ровно одно и то же.

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 20:44:08
Starichok51
может, у тебя с английским нет проблем, но с функцией SEARCH_ROM у тебя очень большие проблемы...
если они делают одно и то же, тогда попробуй прочитать температуру с помощью SEARCH_ROM одного конкретного датчика.
и если они делают одно и то же, тогда попробуй функцией READ_ROM прочитать коды ВСЕХ датчиков на линии.

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 21:35:26
AVK
Чувак, я эти функции сам написал и знаю, что они делают ))))))))))))

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 21:59:42
Starichok51
чувак, тогда я тебя поздравляю и я рад за тебя, что эти обе функции у тебя делают одно и тоже.

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 22:06:04
AVK
Чувак, результатом работы этих функций являются ромкоды, там один, там несколько. Это разве не одно и то же?

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 22:13:22
Martian
//я нихуя не вкурил как она считается, мне было лень разбираться, поэтому я взял эту функцию в инете )))
мда... такой комментарий показателен. другие тоже не особо. Их интеллектуальность соответствует и коду. В топку.

Re: Написал свою Onewire для Codevision

Добавлено: Чт окт 26, 2023 22:36:50
AVK
Ну и что? Там полностью моя функция чтения ромкодов. Она очень красивая получилась.
Вы нашли комент, не смотря код и решили что автор глуп?
Вы прикольный.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 08:21:38
OKF
А так можно?:
Спойлер

Код: Выделить всё

void ds18b20Exe() {
  static uint16_t state;
  static uint16_t timer;
  static uint16_t temp;
  
  if (timer) 
    --timer;
  else
    switch (state) {
      case 0:
        if (!dsReset())
          break;
        next(state);
        
        dsByte(SKIP_ROM);
        next(state);
        
        dsByte(READ_SCRATCHPAD);
        next(state);
        
        temp = dsByte(0xff);
        next(state);
        
        temp |= dsByte(0xff)<<8;
        temperature = ds2cels(temp);
        next(state);
        
        if (!dsReset()) {
          state = 0;
          break;
        }
        next(state);
        
        dsByte(SKIP_ROM);
        next(state);
        
        dsByte(CONVERT_T);
        timer = ms2sys(CONVERTION_TIME);
        state = 0;
        break;
    }
}

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 11:15:07
AVK
Вы хоть сами поняли что запостили?
Можно как угодно, только внезапно в вашем листинге ничего и нет. Ни одной функции работы с физической линией.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 11:41:44
OKF
Физика отдельно - логика отдельно. Я не только понял, но у меня это ещё и работает.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 12:04:42
AVK
Кто бы спорил. Только это даже не четверть от всего необходимого кода.
Самое прикольное это SearchROM.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 12:51:13
КРАМ
[uquote="AVK",url="/forum/viewtopic.php?p=4494388#p4494388"]Самое прикольное это SearchROM.[/uquote]
К сожалению, использование этой функции для одинаковых микросхем бессмысленно.
Гирлянда датчиков температуры только смотрится прикольно, но никакого прока от нее нет, ибо невозможно определить топологию расположения каждого из датчиков температуры без перректальных манипуляций с включением-выключением микросхем в линии. Но и при таком раскладе гораздо проще включать датчики по одному и фиксировать их ID, а затем включить упорядоченный список ID в код МК, где и будет обозначено какому расположению соответствует какой ID. Так себе идея и процедура...

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 16:31:15
AVK
А вот и нет, если датчика два три, то никаких проблем, переназначили в проге и все. А еще вполне может быть один датчик подключен внутри корпуса и все, ваши действия только развести руки.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 17:31:03
КРАМ
[uquote="AVK",url="/forum/viewtopic.php?p=4494521#p4494521"]если датчика два три, то никаких проблем[/uquote]
Даладна!!! :))) :))) :)))
Это с какого перепуга? Каждый трогать пальчиком? А если он недоступен?
Поиск сделан для определения на шине РАЗНЫХ устройств, когда потом можно считать какое устройство на этом ID.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 17:38:14
veso74
Производитель Maxim предложил сам алгоритм 1-Wire Search Algorithm.
Использовать или нет, решает автор программного кода. А как функция в библиотеки: если используем, она не будет занимать память. Мне лучше иметь SEARCH. Напр. 2 недели назад сравнил сумку китайского DS18 с 3-мя оригинальными. Через 20 минут они (10 щт) показали те же данные, что и ориг. микросхемы. Доволен, выделил ИС как: "можно использовать". Ничего, что стоят примерно 1/10 цены оригинала.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 17:41:31
КРАМ
[uquote="AVK",url="/forum/viewtopic.php?p=4494521#p4494521"]может быть один датчик подключен[/uquote]
А зачем поиск для одного?

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 17:45:31
veso74
Для одного ИС и напр. в ATTiny13A нет смысла этой функции. Но если search есть в библиотеке, просто не используетесь. Думаю времена минимализма в написании программного кода давно прошли. Лучше, если библиотеки (драйвера для внешних устройств) будут поддерживать все возможности из документации микросхемы. То и из CRC в 90% случаев добавлять нет смысла.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 17:48:33
КРАМ
[uquote="veso74",url="/forum/viewtopic.php?p=4494558#p4494558"]Через 20 минут они (10 щт) показали те же данные[/uquote]
Ну да, есть нестандартные задачи, которые могут потребовать поиска.
Тут разговор идет о достаточно стандартных решениях.
Ну и то, что аппнота от Даллас-Максим-Аналог девайс позволяет реализовать поиск по готовому графическому алгоритму делает задачу написания кода достаточно несложной.

Re: Написал свою Onewire для Codevision

Добавлено: Пт окт 27, 2023 17:53:19
veso74
Да, решения приходят согласно поставленным задачам. Недавно в ATtiny13A поставил задачу (пр. яз. С) (как "брейнсторм" :ПП) "собрать" DS18 и OLED 091" (шрифтом, с отрицательными температурами, с десятичной точкой ...). Ну, сработало, с компромиссами. Не говорю, что это "правильный путь" писания прогр. кода ...