Вверх ↑
Этот топик читают: Гость
Ответов: 8926
Рейтинг: 823
#61: 2016-01-24 13:31:12 ЛС | профиль | цитата
Konoplj2010, пришёл, пришёл
Последний *.exe "com_1wave2.rar" запускали, работает? У меня закралось подозрение, что может я переворачиваю байты, надо бы проверить "СОМ терминалом", подать одинаковые команды с вашей программы и с последней и сравнить на одинаковость

карма: 19

0
Ответов: 70
Рейтинг: 0
#62: 2016-01-24 15:16:57 ЛС | профиль | цитата
Леонид писал(а):

Сейчас попробую.
------------ Дoбавленo в 14.40:
Вот так выдаёт 100% рабочая программа:
http://forum.hiasm.com/xf/attach/share/%D0%A1%D0%BE%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_1.jpg
И вот так выдаёт то что у Вас получилось:
http://forum.hiasm.com/xf/attach/share/%D0%A1%D0%BE%D0%B0%D0%B2%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5_2.jpg
------------ Дoбавленo в 14.41:
К сожалению дети требуют компьютер, нужно отдать позднее смогу продолжить.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#63: 2016-01-24 17:06:36 ЛС | профиль | цитата
Леонид, зато у нас светодиод зелёный !
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#64: 2016-01-24 17:08:22 ЛС | профиль | цитата
Konoplj2010, да, и при передаче и при приёме первым идёт младший бит а я делал первый старший бит -- я ещё тыкву чесал, как делать. Кроме того датчик при выдаче температуры бит "0" передаёт не "00", как программа при командах, а "CF" Что-то неправильно или с синхронизацией или со скоростью. Рисунки с расшифровкой:
1w_on_com.jpg
com_1w_homemade.jpg
карма: 19

0
файлы: 21w_on_com.jpg [44.3KB] [762], com_1w_homemade.jpg [25.3KB] [734]
Ответов: 70
Рейтинг: 0
#65: 2016-01-24 18:52:08 ЛС | профиль | цитата
Леонид писал(а):

К стати да, это Вы верно подметили, а я сам разобрать, к сожалению, не смог.
Хорошо, какого чёрта датчик вместо 0 говорить FC (а вернее CF)??? Надо глубже копнуть... Я как что ни буть разузнаю обязательно сообщу.
------------ Дoбавленo в 18.16:
Блин, как же я забыл???

http://avr.ru/beginer/understand/1wire

Сигнал "Чтение". Ведущий устанавливает низкий уровень в течение 1…15 мкс. После этого подчинённый, если хочет передать 0, удерживает шину в низком состоянии до 60 мкс; если же подчинённых хочет передать 1, то он просто освобождает линию. Ведущий обычно сканирует состояние шины по истечении 15 мкс после установки низкого уровня на шине.
Так, ведомый удерживает линию к земле, если хочет передать "0", и просто отпускает линию, если хочет передать "1".
Таким образом при чтении получаем следующие диаграммы.
Основные проблемы, которые возникают при реализации чтения-записи – это проблемы со временем, то есть "невыдерживание", или наоборот, "передерживание" временных задержек при чтении линии. Возникают эти проблемы из-за того, что часто не делают поправку на медленность языков программирования высокого уровня. Особенно это касается различных "дополнительных" функций и ништяков.



Блин вот оно что! Я когдато раньше писал программку на С для AVR-ки и там было ток:


void receive_ds1820(void){//Функция приема битов от DS1820
cli();
for(unsigned char i=0;i<16;i++) { //Прием 2 байт с температурой и знаком
DDRD|=_BV(DT); //Вывод порта настраеваем как выход
_delay_us(6); //Задержка на 6 мкс
DDRD&=~_BV(DT); //Вывод порта настраеваем как вход
_delay_us(9); //Задержка на 9 мкс
if (PIND & (1<<DT)) {//Проверка состояния вывода
grand_temperature|=_BV(i);} //Запись лог. 1
else {grand_temperature&=~_BV(i); } //Запись лог. 0
_delay_us(55);} //Задержка на 55 мкс
des_temperature=grand_temperature&0b00001111;
des_temperature=(des_temperature*5)/8;
temperature=(grand_temperature>>4);
temperature=(temperature*10)+des_temperature;//Значение температуры х10 для обработки
sei();
}


Понимаете как это? То есть для чтения нужно в линию сказать 0 в течении 1-15 мс (или 6 как я делал раньше) только потом после этого датчик если говорит 0 то в течении 60 мс на линии 0, а если говорит 1 то в течении 60 мс в линии 1.
Вот оно что, вот от куда берётся 0хFC (а вернее CF) это датчик отвечает. В течении того времени как терминал уже отчситал 0b111111 только потом датчик говорит своё 0b00 что хотел сказать.
карма: 0

0
Ответов: 8926
Рейтинг: 823
#66: 2016-01-24 21:38:01 ЛС | профиль | цитата
Konoplj2010, попытка номер три изменил порядок следования бит и считывание "0" с ответа. com_1wave3.rar Надо проверять
nesco, в конвертере в моде BinToInt нет свойства Forward/Reverse, хотя в логике в компоненте IntToBin такая точка есть
карма: 19

0
файлы: 1com_1wave3.rar [48.4KB] [339]
Ответов: 16884
Рейтинг: 1239
#67: 2016-01-24 22:07:04 ЛС | профиль | цитата
Хоть кто-нибудь читал http://voron.ua/files/pdf/maxim/ds18b20-rus.pdf ? Там описано и порядок передачи бит и байт, и много чего полезного.
Или Ваш метод - метод тыка ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8926
Рейтинг: 823
#68: 2016-01-24 22:26:36 ЛС | профиль | цитата
Tad, даже коллега
Rysik писал(а):
Самому допереть до чего либо, бесценно!

карма: 19

0
Ответов: 16884
Рейтинг: 1239
#69: 2016-01-25 00:04:18 ЛС | профиль | цитата
Леонид, "допираете" уже 5-ю страницу.
Рекомендация автора из [url
http://voron.ua/files/pdf/maxim/ds18b20-rus.pdf[/url]]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1Леонид6.gif [5.5KB] [808]
Ответов: 70
Рейтинг: 0
#70: 2016-01-25 07:41:00 ЛС | профиль | цитата
Tad писал(а):

Я этот мануал читал ещё лет 5 назад. С этим мануалом я написал библиотеку к AVR-ке которую я привёл выше. Только проблема в том что ногами МК я могу дёргать как я хочу, а вот портом с UART не так то и просто происходит (как оказалось).
Леонид писал(а):

Я вечером смогу попробовать, я вечером отпишусь.
карма: 0

0
Ответов: 70
Рейтинг: 0
#71: 2016-01-26 12:41:14 ЛС | профиль | цитата
Konoplj2010 писал(а):

Вот что получилось.
http://forum.hiasm.com/xf/attach/share/26.01.2016.jpg
карма: 0

0
Ответов: 8926
Рейтинг: 823
#72: 2016-01-26 13:37:43 ЛС | профиль | цитата
Konoplj2010, т. е. наконец-то правильные сигналы выходят? Ну а диалог с датчиком в ручном режиме, команды и его ответы ? (на картинке последние четыре нулевых байта -- это что?)
карма: 19

0
Ответов: 70
Рейтинг: 0
#73: 2016-01-27 16:27:17 ЛС | профиль | цитата
Леонид писал(а):
Konoplj2010, т. е. наконец-то правильные сигналы выходят?

Не совсем, я пробовал полный пакет но без результата.
Леонид писал(а):
на картинке последние четыре нулевых байта -- это что?

Мне тоже интересно, на ответ датчика не похоже уж очень длинный. Ответ датчика должен быть не длиннее команды RESET, а если быть точным то короче. Я думал что это программа выдаёт эти 0х00 (хотя без датчика не додумался попробовать). Давайте сравним пакет от рабочей программы и от Вашей?
карма: 0

0
Ответов: 8926
Рейтинг: 823
#74: 2016-01-27 23:09:58 ЛС | профиль | цитата
Konoplj2010 писал(а):
..сравним пакет от рабочей программы и от Вашей..
Только так и можно (если не прислушаться к мудрому Tad )
карма: 19

0
Ответов: 70
Рейтинг: 0
#75: 2016-01-28 09:18:00 ЛС | профиль | цитата
Леонид писал(а):

Вот что у меня получилось.
http://forum.hiasm.net/xf/attach/share/27.01.2016.JPG
------------ Дoбавленo в 08.41:
Как я понимаю нет команды RESET в начале кадра (0х00 две штуки). В целом если подсчитать то в Вашем кадре получается 16 байт (16=2*8 и всё), а в другой программе 18 (2 RESET + 16=2*8).
------------ Дoбавленo в 08.42:
А в остальном должно быть всё правильно.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)