|
Разнесение задач из одного МК на два МК - выносной пульт ДУ. Связь двух МК. |
|
|
|
Dec 24 2008, 10:25
|
Местный
  
Группа: Участник
Сообщений: 326
Регистрация: 14-02-06
Пользователь №: 14 331

|
Цитата(Dog Pawlowa @ Dec 24 2008, 14:32)  [attachment=28161:attachment] И обмен можно сделать беспротокольный, закодировав команды установки позиции вывода на экран неотображаемыми символами. Символы просто уходят в другое устройство без всяких подтверждений. Естественно, размер циклического буфера и скорости передачи и обработки должны быть выбраны соответствующе. Сбоев, при такой связи без подтверждения, с МК управляющим ЖКИ небыло? Можно поподробнее, как вы кодировали информацию?
|
|
|
|
|
Dec 24 2008, 10:45
|
Гуру
     
Группа: Свой
Сообщений: 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;
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Dec 24 2008, 11:48
|

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

|
Цитата(zltigo @ Dec 24 2008, 09:35)  Предполагается, что вторая AVR будет по приезду к заказчику на толлейбусе припяна на соплях к порезанной в лапшу имеющейся плате и все это займет 20 часов БЕЗ "проектирования, изготовления, тестирования, нового софта", причем экземпляр один и других не будет.... Если речь идет о таком стиле, то предупреждать надо  при постановке задачи. В этом случае предполагается __доработка__ существующего железа и софта, а не полная его замена. А уж как именно она будет выполнена - это другой вопрос. Положим пришел к Вам заказчик с предложением, добавить в ваш роутер еще 100 светодиодов (утрирую конечно) за n денег. Вы же не броситесь ставить ARM9 с +100 выводами, вместо Вами любимого NXP 144, ради этого. Логичнее нарисовать еще одну простецкую платку с этими светодиодами и подключить к уже имеющемуся и разведенному любому интерфейсу готовой платы. А с позиции софта - наваять еще один модуль без изменения логики основной программы, для управления этими светодиодами. Риск и затраты при таком подходе - минимальны.
|
|
|
|
|
Dec 24 2008, 12:46
|

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

|
Цитата(Andrey_B @ Dec 24 2008, 09:14)  Связать два мк в любом случае сложнее и дольше по времени чем что-то сделать на основе уже имеющегося мк. Две единицы требующие программирования/отладки на плате в любом случае хуже чем одна. При всех равных. Кроме того SPI или UART`ов много не бывает.  Ну лет эдак ... назад я бы сам так сказал. Сейчас добавка atmega48 практически не добавляет ни сложности, ни цены. Зато даёт некоторую свободу. (кстати, такой "терминал", кажется, от SasaVitebsk, где-от по форуму пробегал). Причём я бы рекомендовал для такого "терминальчика" взять минимально необходимое/оправданное подмножество команд VT100 - команды очистки экрана, строки, позиционирования курсора. Что касается "дефицитности UART" - ЖКИ 4*20 = 80 символов. На скорости 2400 - *полная* перерисовка экрана = треть секунды. Замена 1/4 части - меньше 0,1секунды. На 9600 - всё в 4 раза быстрее. А это небольшие скорости для программной реализации. Полагаю, что даже если у меги640 уже не осталось свободных UART - один модуль IC и один OC на каком-то из таймеров свободными остались и софт-UART мало займёт ресурсов - не намного больше, чем сканирование клавиатуры. VT100 даст возможность отлаживать "терминал" отдельно, основную плату отдельно - на терминалке на PC. Т.е. основная плата будет себе посылать что-то в комп подмножеством VT100 команд и терминалка в углочке на поле 4*20 будет всё рисовать.
--------------------
Ну, я пошёл… Если что – звоните…
|
|
|
|
|
Jan 7 2009, 17:08
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(SZ0 @ Jan 7 2009, 21:39)  Проблема только с частотой обновления экрана возникла, т.к. в некоторых местах программы экран обновлятеся очень часто. Поэтому пришлось поднять скорость обмена. Довольно странное решение. Обновление всего экрана делать чаще, чем 1-3 раза в секунду нет смысла. Человеческий мозг, который обрабатывает визуальную информацию, довольно быстро "устает" от бОльшей частоты изменения этой информации. Так что период регенерации 0,3с...1с самый оптимальный и комфортный для пользователя. Поэтому нужно не скорость обмена поднимать, а снижать скорость регенерации или смены информации на дисплее. Возможно для этого придется ввести промежуточную буферизацию данных, отображаемых на LCD-модуле, в самом терминале. Но 80 байт на буфер экрана ИМХО не такие уж и большие накладные расходы.
|
|
|
|
|
Jan 7 2009, 19:47
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

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