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

Обсуждаем контроллеры компании Atmel.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

AVK, именно, что поиск, так как Search в переводе именно поиск.
а чтение по англицки пишется совсем по другому.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

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

Сообщение AVK »

У меня нет проблем с английским. Эта функция читает ромкоды датчиков. Результатом ее работы являются коды всех датчиков подключенных на шину. Просто для одного датчика есть команда READ_ROM а для нескольких SEARCH_ROM но делают они ровно одно и то же.
Реклама
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

может, у тебя с английским нет проблем, но с функцией SEARCH_ROM у тебя очень большие проблемы...
если они делают одно и то же, тогда попробуй прочитать температуру с помощью SEARCH_ROM одного конкретного датчика.
и если они делают одно и то же, тогда попробуй функцией READ_ROM прочитать коды ВСЕХ датчиков на линии.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

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

Сообщение AVK »

Чувак, я эти функции сам написал и знаю, что они делают ))))))))))))
Реклама
Эиком - электронные компоненты и радиодетали
Аватара пользователя
Starichok51
Модератор
Сообщения: 19053
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

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

Сообщение Starichok51 »

чувак, тогда я тебя поздравляю и я рад за тебя, что эти обе функции у тебя делают одно и тоже.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
Реклама
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

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

Сообщение AVK »

Чувак, результатом работы этих функций являются ромкоды, там один, там несколько. Это разве не одно и то же?
Реклама
Martian
Друг Кота
Сообщения: 12867
Зарегистрирован: Сб дек 18, 2021 19:25:32
Контактная информация:

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

Сообщение Martian »

//я нихуя не вкурил как она считается, мне было лень разбираться, поэтому я взял эту функцию в инете )))
мда... такой комментарий показателен. другие тоже не особо. Их интеллектуальность соответствует и коду. В топку.
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

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

Сообщение AVK »

Ну и что? Там полностью моя функция чтения ромкодов. Она очень красивая получилась.
Вы нашли комент, не смотря код и решили что автор глуп?
Вы прикольный.
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение 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;
    }
}
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

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

Сообщение AVK »

Вы хоть сами поняли что запостили?
Можно как угодно, только внезапно в вашем листинге ничего и нет. Ни одной функции работы с физической линией.
OKF
Это не хвост, это антенна
Сообщения: 1393
Зарегистрирован: Вт июн 07, 2011 08:03:18

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

Сообщение OKF »

Физика отдельно - логика отдельно. Я не только понял, но у меня это ещё и работает.
AVK
Потрогал лапой паяльник
Сообщения: 349
Зарегистрирован: Сб окт 20, 2007 14:12:03

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

Сообщение AVK »

Кто бы спорил. Только это даже не четверть от всего необходимого кода.
Самое прикольное это SearchROM.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

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

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

Сообщение AVK »

А вот и нет, если датчика два три, то никаких проблем, переназначили в проге и все. А еще вполне может быть один датчик подключен внутри корпуса и все, ваши действия только развести руки.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

[uquote="AVK",url="/forum/viewtopic.php?p=4494521#p4494521"]если датчика два три, то никаких проблем[/uquote]
Даладна!!! :))) :))) :)))
Это с какого перепуга? Каждый трогать пальчиком? А если он недоступен?
Поиск сделан для определения на шине РАЗНЫХ устройств, когда потом можно считать какое устройство на этом ID.
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

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

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

Сообщение КРАМ »

[uquote="AVK",url="/forum/viewtopic.php?p=4494521#p4494521"]может быть один датчик подключен[/uquote]
А зачем поиск для одного?
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

Для одного ИС и напр. в ATTiny13A нет смысла этой функции. Но если search есть в библиотеке, просто не используетесь. Думаю времена минимализма в написании программного кода давно прошли. Лучше, если библиотеки (драйвера для внешних устройств) будут поддерживать все возможности из документации микросхемы. То и из CRC в 90% случаев добавлять нет смысла.
Последний раз редактировалось veso74 Пт окт 27, 2023 17:49:29, всего редактировалось 1 раз.
Аватара пользователя
КРАМ
Друг Кота
Сообщения: 25259
Зарегистрирован: Чт янв 10, 2008 22:01:02
Откуда: Московская область, Фрязино

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

Сообщение КРАМ »

[uquote="veso74",url="/forum/viewtopic.php?p=4494558#p4494558"]Через 20 минут они (10 щт) показали те же данные[/uquote]
Ну да, есть нестандартные задачи, которые могут потребовать поиска.
Тут разговор идет о достаточно стандартных решениях.
Ну и то, что аппнота от Даллас-Максим-Аналог девайс позволяет реализовать поиск по готовому графическому алгоритму делает задачу написания кода достаточно несложной.
veso74
Поставщик валерьянки для Кота
Сообщения: 1907
Зарегистрирован: Сб май 05, 2012 20:24:52
Откуда: KN34PC, Болгария
Контактная информация:

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

Сообщение veso74 »

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

Вернуться в «AVR»