Управление таймерами по требованию.
- Viper_Snake
- Электрический кот
- Сообщения: 1050
- Зарегистрирован: Вс мар 01, 2009 19:47:16
- Откуда: Ростов-на-Дону
Управление таймерами по требованию.
Прошу помощи разобраться с управлением таймерами в аврках. Задача, которую я собираюсь решить следущая: необходимо прожевать пакет данных с контроллера, который стоит в заводском изделии, сравнить с шаблоном и предпринять какое либо действие. Сам протокол передачи асинхронный, похож на нестандарный UART. Есть стартовый и стоповый бит, длинна посылки 20 бит, период одного импульса - 8мс. Логику работы я вижу такой: контроллер 328-я мега, мне так удобно, по прерыванию от стартового бита запускается таймер 1 в режиме CTC на время 4 мс, чтобы плюс/минус попасть на середину периода импульса. После этого таймер настраивается на период 8мс и с помощью цикла с инкрементом по прерыванию делает захват сигнала. После захвата таймер должен остановиться и ждать следующего пинка от прерывания от стартового бита. Вопрос: как это реализовать? Стартовать таймер должен "голодным", то есть с пустым TCNT1. Проблема в том, что я не могу его после запуска остановить ...
Не важно чем все начнется. Важно чем кончится!
- Реклама
Re: Управление таймерами по требованию.
https://github.com/notweerdmonk/avr-software-uart
может, поможет (я не пробовал)
может, поможет (я не пробовал)
- Viper_Snake
- Электрический кот
- Сообщения: 1050
- Зарегистрирован: Вс мар 01, 2009 19:47:16
- Откуда: Ростов-на-Дону
Re: Управление таймерами по требованию.
[uquote="Martian",url="/forum/viewtopic.php?p=4484999#p4484999"]https://github.com/notweerdmonk/avr-software-uart
может, поможет (я не пробовал)[/uquote]
Не, свят-свят!!! Только не готовые библиотеки. Вопрос уже неактуален, с таймером разобрался - дело было не в боббине, как говорится...
Добавлено after 31 second:
Спасибо за участие!
может, поможет (я не пробовал)[/uquote]
Не, свят-свят!!! Только не готовые библиотеки. Вопрос уже неактуален, с таймером разобрался - дело было не в боббине, как говорится...
Добавлено after 31 second:
Спасибо за участие!
Не важно чем все начнется. Важно чем кончится!
Re: Управление таймерами по требованию.
о не, не готовые, я тоже их свят-свят, только как подсмотреть
- Viper_Snake
- Электрический кот
- Сообщения: 1050
- Зарегистрирован: Вс мар 01, 2009 19:47:16
- Откуда: Ростов-на-Дону
Re: Управление таймерами по требованию.
Martian, там такое не прокатит. Это многим печально известный холодильник ЛджЫ с его замечательным линейным компрессором который, не смотря на 10 year of warranty практически у всех наедается в течение 5-8 лет мацы и холодос превращается из прибора в мебель. На плате управления сего чудо агрегата стоят аж два процессора, один из которых обслуживает холодильник и его периферию, а заодно по асинхронной этой шине командует вторым процом, который рулит исключительно компрессором. В сети есть много информации по этому поводу, в том числе и готовые схемы с прошивками в открытом доступе, но хочется вникнуть в хто самому и сделать полностью функциональную замену, которая будет правильно понимать команды, которые будут поступать с основного проца, а не тупо мерять тайминги. Проект не коммерческий, возможно после реализации отчитаюсь тут о проделанной работе.
Не важно чем все начнется. Важно чем кончится!
- Реклама
Re: Управление таймерами по требованию.
Я бы совместил с коммерческим, то есть, кто хочет сам - вот отчёт, делаете, кто не хочет сам - вот стоимость.
Проект любопытный.
Проект любопытный.
- Viper_Snake
- Электрический кот
- Сообщения: 1050
- Зарегистрирован: Вс мар 01, 2009 19:47:16
- Откуда: Ростов-на-Дону
Re: Управление таймерами по требованию.
Ну сюда закину наверное статейку. Главное, что с протоколом разобрался и получил положительный результат. А пример того, что понимал на фото :

Добавлено after 43 seconds:
Период одного импульса - 8мс
Добавлено after 43 seconds:
Период одного импульса - 8мс
Не важно чем все начнется. Важно чем кончится!
Re: Управление таймерами по требованию.
Любая асинхронная шина легко декодируется с одним таймером и внешним прерыванием. Я когда делал декодер ИК-протокола NEC за вечер написал функцию.


