Перейти к содержанию
    

две 1-wire шины в одном корпусе

Добрый день друзья. Как в процессе работы переинициализировать шину 1-wire на другую ногу МК в cvavr?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если используете встроенную библиотеку CVAVR, то никак. Пишите свою библиотеку или используйте готовую, которую можно поискать в исходниках программ и библиотек в прикрепленной теме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как раз готовлю статейку к своей библиотеке. Пока не совсем готово, но выкладываю сюда ПО + документацию. Библиотека работает, а дока не до конца оформлена. Сори! Да, Си++...

F1Wire.7z

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понял. Изучаю вашу haker_fox документацию! Непонятно одно, прикрутится ли ваша C++ библиотека к проекту CVAVR?..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Понял. Изучаю вашу haker_fox документацию! Непонятно одно, прикрутится ли ваша C++ библиотека к проекту CVAVR?..

Предлагаю Вам три решения решения:

1. Выкидываете CVAVR, если он не поддерживает Си++ :rolleyes:

2. Переписываете библиотеку на Си. Это очень просто.

3. Понимаете идею указателей на порты ввода-вывода, заложенную в библиотеке, и пишите свою)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я в своё время сделал тупо и примитивно - сдублировал все CvAVR-овские функции под разными именами и всё. Один "комплект" дёргает одну ногу, 2-й - другую.

 

Знаю, что некрасиво, жрёт в 2 раза больше флэша (чем могло бы), но так было проще и в той задаче работает.

А флэш свободный там ещё и остался :rolleyes: .

Изменено пользователем hd44780

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Знаю, что некрасиво, жрёт в 2 раза больше флэша (чем могло бы), но так было проще и в той задаче работает.

А флэш свободный там ещё и остался :rolleyes: .

Да, как раз один из вариантов я упомянул в статейке. Сам так делал. Но дело даже не в потребляемой памяти. Дело в том, что исправления и нововведения придется делать дважды (трижды, четырежды...). А так, подкорячил базовый класс, перекомпилировал программу, и все)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

haker_fox

токо непонятно что делать с этой библиотекой на других архитектурах (PIC, STM8, STM32).

привязка всей логики к архитектуре АВР - не лучшая идея.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день друзья. Как в процессе работы переинициализировать шину 1-wire на другую ногу МК в cvavr?

А на фига? Смысл в чём?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо, чтобы реализовывать 2 и более мастеров 1-wire.

смысл наверняка в том, чтобы избавиться от геморроя с адресацией нескольких однотипных устройств. например, сделать устройство измерения температуры в двух или более точках при помощи DS18x20 достаточно геморная штука, если все датчики сажать на 1 линию: надо предусмотреть целую систему "обучения" девайса адресам новых датчиков с привязкой датчика к месту измерения... а если сделать 2 или более шины - то каждая может быть однозначно соотнесена с местом измерения и независима от адреса датчика (SKIP_ROM для обращения).

 

я делал либу поддержки до 8 1-wire-шин на одном порту (WinAVR), но все руки не дошли в реале ее испытать :) в протеусе все работает

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Видимо, чтобы реализовывать 2 и более мастеров 1-wire.

до 8 1-wire-шин на одном порту

Т.е поставить мультиплексор , что бы ерундой не нагружать проц и пожалеть его ноги и альтернативные функции - это не наш метод?

А ещё повесить 1-wire на USART , что бы не тратить по посту процессорное время - прерывания великая сила. :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не хотелось бы устраивать дискуссию... но МК для того и ставят в схему, чтобы по максимуму его нагрузить, избавившись от мультиплексоров и прочей лабуды - не так ли? и ставить во главу угла освобождение МК от работы по меньшей мере странно: он железныйкремниевый - пусть пашет! :)

 

судя по всему, интерфейс с пользователем при установке произвольных датчиков в уже изготовленный девайс у вас проблем не вызывает... а так же объяснение пользователю того, как именно отличить один черненький датчик от другого и почему их нельзя менять местами (на объекте измерения) без перенастройки девайса... вам можно только позавидовать :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...