Обсуждаем электронику на колесах. Нужен увлажнитель воздуха для Камаза? Вам сюда.
Ответить

Re: Декодирование протокола парктроника

Вт мар 17, 2015 13:40:46

Dmitry888 писал(а):...Получаю немного не то что ожидал...

Флаг прерывания (INT0IF) устанавливается независимо от того разрешено прерывание или нет. Т.е., перед разрешением прерывания надо снять флаг прерывания.

Re: Декодирование протокола парктроника

Вт мар 17, 2015 13:47:33

Albert_V писал(а):
Dmitry888 писал(а):...Получаю немного не то что ожидал...

Флаг прерывания (INT0IF) устанавливается независимо от того разрешено прерывание или нет. Т.е., перед разрешением прерывания надо снять флаг прерывания.

Я снимаю флаг в самом начале работы программы в main:
INT0IE_bit = 0; // запрещаем прерывания на INT0
и снимаю его в случае когда SS - в "1".

Re: Декодирование протокола парктроника

Вт мар 17, 2015 13:50:06

Вы неправильно меня поняли. Перед разрешением прерывания (INT0IE_bit = 1) надо снять флаг прерывания (INT0IF_bit = 0)!
Последний раз редактировалось Albert_V Вт мар 17, 2015 14:31:02, всего редактировалось 1 раз.

Re: Декодирование протокола парктроника

Вт мар 17, 2015 13:58:57

Большое спасибо, дошло.

Re: Декодирование протокола парктроника

Вт мар 17, 2015 14:50:32

Лишняя единица вначале пропала. Но все равно какие то глюки:

Теоретически, должны меняться только первые 4 бита(номер посылки).

Re: Декодирование протокола парктроника

Вт мар 17, 2015 19:53:06

У вас дисплей ОК или ОА?

Re: Декодирование протокола парктроника

Вт мар 17, 2015 21:39:19

PicNik писал(а):У вас дисплей ОК или ОА?

не понял вопроса

Re: Декодирование протокола парктроника

Ср мар 18, 2015 06:51:10

Написал на ардуино аналог программы для PIC'a:

те же самые глюки. Может я что-то неправильно понимаю? Как правильно идентифицировать конец посылки?

Re: Декодирование протокола парктроника

Ср мар 18, 2015 12:28:09

Проверять программу лучше по частям.
Попробуйте, для начала, сделать такую проверку:
После окончания приёма - вывод не данных, а число CLK в пакете. Должно быть "как вкопанное" число .20.

Re: Декодирование протокола парктроника

Ср мар 18, 2015 13:01:31

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

Re: Декодирование протокола парктроника

Ср мар 18, 2015 13:13:37

Очень похоже на условие Reset-а счётчика пакетов.

Re: Декодирование протокола парктроника

Ср мар 18, 2015 13:21:32

Dmitry888 писал(а):
PicNik писал(а):У вас дисплей ОК или ОА?

не понял вопроса

Дисплей парковки с общим анодом или ОК. И если есть возможность покажите,более растянутую картинку где можно увидеть, какой адрес и данные.

Re: Декодирование протокола парктроника

Ср мар 18, 2015 13:42:09

PicNik писал(а):Дисплей парковки с общим анодом или ОК. И если есть возможность покажите,более растянутую картинку где можно увидеть, какой адрес и данные.

Затрудняюсь ответить, на первой странице есть фото разобранного дисплея. Более детальная осциллограмма в первом посте.

Re: Декодирование протокола парктроника

Ср мар 18, 2015 13:48:07

Albert_V писал(а):Очень похоже на условие Reset-а счётчика пакетов.

Такая посылка появляется только один раз - при подаче питания, мне она не интересна, я её просто игнорирую.
Меня больше интересует другой вопрос: как мне отличить условия когда: датчик неисправен, датчик смотрит в бесконечность, расстояние перед датчиком менее 30 см. При всех этих условиях значение на датчике - 255.

Re: Декодирование протокола парктроника

Ср мар 18, 2015 14:00:18

Если я правильно понял вопрос (данные во всех этих случаях одинаковые) - никак.
Возможно, на какие-то данные вы не обратили внимание. Например, может быть одна посылка в которой каждому из этих условий соответствует один бит. Но это лишь моё предположение...

Re: Декодирование протокола парктроника

Ср мар 18, 2015 14:25:03

Albert_V писал(а):может быть одна посылка в которой каждому из этих условий соответствует один бит

Скорее всего так оно и есть. Возможно неисправность датчика указывается в первых посылках, они немного отличаются от последующих. Приведу здесь лог с помеременно откюченными датчиками:
Отключены все датчики:

Подключен только A:

Подключен только B:

Подключен только C:

Подключен только D:

Re: Декодирование протокола парктроника

Ср мар 18, 2015 14:36:35

Напишите программу сравнения блоков посылок так, что бы отображалось в какой посылке что изменилось. Так будет проще "расколоть" протокол.
Более простой вариант - выводите попарно 1-ый блок 1-ая посылка, 2-ой блок 1-ая посылка; 1-ый блок 2-ая посылка, 2-ой блок 2-ая посылка; и т.д..

Re: Декодирование протокола парктроника

Чт мар 26, 2015 10:46:40

На ардуино вроде все получилось, пытаюсь "завести" всё это на pic и никак не получается настроить прерывание.
Прошивку разарабатываю в MikroC, код выглядит так:

всё время получаю разное количество срабатываний по прерыванию:

тоесть здесь прерывание происходило от 16 до 20 раз.
В чём моя ошибка?

Re: Декодирование протокола парктроника

Пн мар 30, 2015 06:24:24

Раз никто не может ответить - отвечу сам:
Ошибка в том, что флаг INT0IF_bit снимается каждый раз в основном цикле и возникает ситуация когда условие прерывания произошло, но флаг INT0IF_bit тут же снялся в основном цикле программы и обработчик прерывания не отработал. Правильнее, перед сбросом флага INT0IF_bit - проверять состояние флага INT0IE_bit, и сбрасывать его только когда это действительно нужно.

Re: Декодирование протокола парктроника

Вт окт 18, 2022 10:10:09

У меня парктроник без cs. Как правильно получить длину импульса по спаду?
Ответить