Вверх ↑
Ответов: 70
Рейтинг: 0
#1: 2016-02-06 13:59:28 ЛС | профиль | цитата
Tad писал(а):

Ну хорошо, если Вам так нужны команды порта то я выложу. Хотя если чесно не пинимаю зачем они Вам.
------------ Дoбавленo в 13.11:
Вот самые основные коды, во всяком случае те которыми я буду пользоваться.

READ ROM 0x33 - команда одному подчинённому сказать свой уникальный код (адрес). После этого кода один датчик скажет в линию 8 байт кода, в дальнейшем этот код будет использоватся для обращения конкретно для этого датчика.

VATCH ROM 0x55 - поиск одного датчика в сети по его коду (адресу). После подачи этой команды мастер выдаёт в линию 8 байт кода устройства к которому он обращается. Подчинённый который распознал свой код слушает что ему скажет мастер далее. Обычно мастер даёт команду подчинённому выдать результат замера в линию командой 0xBE.

READ FLASH 0xBE - команда сказать 2 байта результата замера температуры. После того как мастер сказал 0xBE подчинённый выдаёт в линию 2 байта которые эквивалентны показанием температуры среды в которой датчик находиться.

SKIP ROM 0xCC - команда обращения ко всем датчикам в сети игнорируя их коды (адреса). После подачи этого кода обычно мастер даёт команду замерять температуру 0x44 всем датчикам для того чтобы результаты замера совпадали по времени со всеми датчиками.

CONVERT TEMPERATURES 0x44 - команда произвести замер температуры. После этой команды датчик будит преобразовывать температуру в 2 байта которые эквивалентны показанием температуры среды в которой датчик находиться и сохранит в своей FLASH памяти. Эта процедура занимает примерно 750 мили сек.

ALARM SEARCH 0xEC - на эту команду отвечает только тот датчик который перегрелся и находится в аварии по температуры. Обычно после того как мастер сказал эту команду выдаёт команду 0x33 для того чтобы датчик сказал свой код (адрес) и мастер смог определить где находится данный датчик.
------------ Дoбавленo в 13.23:
В алгоритме это выглядит так.

RESET; Команда RESET
Write 0xCC; Команда пропустить адрес
Write 0x44; Команда преобразовать температуру всем датчикам
delay_ms (750); Ждать 750 мили сек пока датчики выполнят преобразование
RESET; Команда RESET
Write 0x55; Команда поиск адреса
Write 0x28; 8 байт адреса устройства
Write 0xA7;
Write 0x5E;
Write 0x2A;
Write 0x07;
Write 0x00;
Write 0x00;
Write 0xE1;
Write 0xBE; Команда передать результат замера температуры для одного конкретного датчика
Read bate; Считать младший байт результата датчика №1
Read bate; Считать старший байт результата датчика №1
RESET; Команда RESET
Write 0x55; Команда поиск адреса
Write 0x28; 8 байт адреса устройства
Write 0xA7;
Write 0x5E;
Write 0x2A;
Write 0x07;
Write 0x00;
Write 0x00;
Write 0xE1;
Write 0xBE; Команда передать результат замера температуры для одного конкретного датчика
Read bate; Считать младший байт результата датчика №2
Read bate; Считать старший байт результата датчика №2
RESET;
карма: 0

0