реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Разнесение задач из одного МК на два МК - выносной пульт ДУ. Связь двух МК.
SZ0
сообщение Dec 24 2008, 10:25
Сообщение #16


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Цитата(Dog Pawlowa @ Dec 24 2008, 14:32) *
[attachment=28161:attachment]
И обмен можно сделать беспротокольный, закодировав команды установки позиции вывода на экран неотображаемыми символами. Символы просто уходят в другое устройство без всяких подтверждений. Естественно, размер циклического буфера и скорости передачи и обработки должны быть выбраны соответствующе.


Сбоев, при такой связи без подтверждения, с МК управляющим ЖКИ небыло?
Можно поподробнее, как вы кодировали информацию?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Dec 24 2008, 10:45
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(SZ0 @ Dec 24 2008, 14:25) *
Сбоев... небыло?

Чего же не было? На испытаниях по ESD были. Но экран обновлялся каждую секунду, такой сбой допускается.

Цитата(SZ0 @ Dec 24 2008, 14:25) *
как вы кодировали информацию?


// 0XXX XXXX character to display 0x00 - 0x7f
// 10YX XXXX set position XXXXX Y (X и Y минус 1 - счет с нуля)
// 1100 0xxx clear screen
// 1100 1xxx init LCD
// 1101 0mmm set backlight mode
// 1101 1mmm set LED mode
// 1110 0mmm set sound mode
// 1110 1mmm show firmware version on position X=6, Y=2
// 1111 0mmm clear Line
// 1111 1000 stop RTC correction mode inside KBD:
// 1111 1001 start RTC correction mode inside KBD;


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
defunct
сообщение Dec 24 2008, 11:48
Сообщение #18


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(zltigo @ Dec 24 2008, 09:35) *
Предполагается, что вторая AVR будет по приезду к заказчику на толлейбусе припяна на соплях к порезанной в лапшу имеющейся плате и все это займет 20 часов БЕЗ "проектирования, изготовления, тестирования, нового софта", причем экземпляр один и других не будет.... Если речь идет о таком стиле, то предупреждать надо sad.gif при постановке задачи.

В этом случае предполагается __доработка__ существующего железа и софта, а не полная его замена.
А уж как именно она будет выполнена - это другой вопрос.

Положим пришел к Вам заказчик с предложением, добавить в ваш роутер еще 100 светодиодов (утрирую конечно) за n денег. Вы же не броситесь ставить ARM9 с +100 выводами, вместо Вами любимого NXP 144, ради этого. Логичнее нарисовать еще одну простецкую платку с этими светодиодами и подключить к уже имеющемуся и разведенному любому интерфейсу готовой платы. А с позиции софта - наваять еще один модуль без изменения логики основной программы, для управления этими светодиодами. Риск и затраты при таком подходе - минимальны.
Go to the top of the page
 
+Quote Post
ReAl
сообщение Dec 24 2008, 12:46
Сообщение #19


Нечётный пользователь.
******

Группа: Свой
Сообщений: 2 033
Регистрация: 26-05-05
Из: Бровари, Україна
Пользователь №: 5 417



Цитата(Andrey_B @ Dec 24 2008, 09:14) *
Связать два мк в любом случае сложнее и дольше по времени чем что-то сделать на основе уже имеющегося мк. Две единицы требующие программирования/отладки на плате в любом случае хуже чем одна. При всех равных. Кроме того SPI или UART`ов много не бывает. smile.gif
Ну лет эдак ... назад я бы сам так сказал. Сейчас добавка atmega48 практически не добавляет ни сложности, ни цены. Зато даёт некоторую свободу. (кстати, такой "терминал", кажется, от SasaVitebsk, где-от по форуму пробегал).
Причём я бы рекомендовал для такого "терминальчика" взять минимально необходимое/оправданное подмножество команд VT100 - команды очистки экрана, строки, позиционирования курсора.
Что касается "дефицитности UART" - ЖКИ 4*20 = 80 символов.
На скорости 2400 - *полная* перерисовка экрана = треть секунды. Замена 1/4 части - меньше 0,1секунды.
На 9600 - всё в 4 раза быстрее. А это небольшие скорости для программной реализации.
Полагаю, что даже если у меги640 уже не осталось свободных UART - один модуль IC и один OC на каком-то из таймеров свободными остались и софт-UART мало займёт ресурсов - не намного больше, чем сканирование клавиатуры.
VT100 даст возможность отлаживать "терминал" отдельно, основную плату отдельно - на терминалке на PC. Т.е. основная плата будет себе посылать что-то в комп подмножеством VT100 команд и терминалка в углочке на поле 4*20 будет всё рисовать.


--------------------
Ну, я пошёл… Если что – звоните…
Go to the top of the page
 
+Quote Post
SZ0
сообщение Jan 7 2009, 16:39
Сообщение #20


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



В настоящее время сделал так для ЖКИ на пульте: с управляющего МК передаётся состояние ножек для ЖКИ. Т.е. все сигналы управления и/или данные выставляются в переменной, которая тут же отправляется по уарт. Проблема только с частотой обновления экрана возникла, т.к. в некоторых местах программы экран обновлятеся очень часто. Поэтому пришлось поднять скорость обмена.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 7 2009, 17:08
Сообщение #21


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(SZ0 @ Jan 7 2009, 21:39) *
Проблема только с частотой обновления экрана возникла, т.к. в некоторых местах программы экран обновлятеся очень часто. Поэтому пришлось поднять скорость обмена.
Довольно странное решение. Обновление всего экрана делать чаще, чем 1-3 раза в секунду нет смысла. Человеческий мозг, который обрабатывает визуальную информацию, довольно быстро "устает" от бОльшей частоты изменения этой информации. Так что период регенерации 0,3с...1с самый оптимальный и комфортный для пользователя. Поэтому нужно не скорость обмена поднимать, а снижать скорость регенерации или смены информации на дисплее. Возможно для этого придется ввести промежуточную буферизацию данных, отображаемых на LCD-модуле, в самом терминале. Но 80 байт на буфер экрана ИМХО не такие уж и большие накладные расходы.
Go to the top of the page
 
+Quote Post
SZ0
сообщение Jan 7 2009, 18:18
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331



Часть параметров необходимо отображать в реальном времени, поэтому так сделано. Ещё обновляется не весь экран, а лишь та часть, что меняется часто.
Go to the top of the page
 
+Quote Post
rezident
сообщение Jan 7 2009, 19:47
Сообщение #23


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(SZ0 @ Jan 7 2009, 23:18) *
Часть параметров необходимо отображать в реальном времени, поэтому так сделано.
А c максимальной задержкой между получением данных и отображением в 0,3c это не реальное время по-вашему? 07.gif Даже если пользователь сидит, внимательно следит за показаниями на индикаторе и держит руку на рубильнике, то быстрее, чем за 0,2-0,3с он ну никак не сможет среагировать. Так зачем ему чаще события показывать? Это же лишь мельтешение символов на экране создает. Либо я не понимаю, что такое "в реальном времени" по-вашему? Предсказанные события? wink.gif
Цитата(SZ0 @ Jan 7 2009, 23:18) *
Ещё обновляется не весь экран, а лишь та часть, что меняется часто.
А это собственно без разницы где обновлять эту часть - в буфере или непосредственно на экране.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 1st August 2025 - 18:39
Рейтинг@Mail.ru


Страница сгенерированна за 0.01417 секунд с 7
ELECTRONIX ©2004-2016