![]() |
![]() |
#11 |
Резидент клуба
Регистрация: 21.08.2011
Сообщений: 1,158
|
![]()
А сами производители этот набор высылают?
На ебее его нет. Где можно заказать? |
![]() |
![]() |
![]() |
#12 |
Резидент клуба
Регистрация: 13.03.2011
Сообщений: 212
|
![]()
На сайте можно заказать. Даже в рублях счёт выставят. Выбираешь платформу с нужным контроллером, возможно ещё чего к ней и заказываешь.
Добавлено через 14 минут Сегодня модернизирована была РЧ часть - приёмопередатчик поменян на RTQ1 от Telecontrolli. |
![]() |
![]() |
![]() |
#13 | |||||||||||||||||||||||
Резидент клуба
Регистрация: 08.05.2011
Сообщений: 450
|
![]()
Насколько я помню RTOS это Операционная Система Реального Времени а для их осуществления нужин достаточно мошьный МК ![]() Добавлено через 17 минут Огромное спасибо CivicDriver много интересного нашел железа на офицальном сайте уже заказал почти на полторы штуки... Как придет посылка бцду тестить и проверять.... Еще раз спосибо за призентацию железа.... |
|||||||||||||||||||||||
![]() |
![]() |
![]() |
#14 | |||||||||||||||||||||||
Резидент клуба
Регистрация: 13.03.2011
Сообщений: 212
|
![]()
Да не за что. Судя по тому, что mikroMedia стоит 99$, поназаказывал ты на полторы штуки много чего другого. ![]() |
|||||||||||||||||||||||
![]() |
![]() |
![]() |
#15 |
Резидент клуба
Регистрация: 13.03.2011
Сообщений: 212
|
![]()
Опыт четвёртый.
Создание управляемого переборщика. Итак, создаём управляемый переборщик под Came. Многие спрашивают, почему первый осознанно-практический проект это именно переборщик. Ответ прост. Исторически разработчики технических устройств при знакомстве с новой платформой пишут под неё свою первую тестовую программу, заключающуюся в переключении напряжения на какой-либо ножке микроконтроллера, на которую вешают светодиод, и искренне радуются результату. Сначала задержка между переключениями формируются простыми NOP’ами. Затем для этой цели подключается таймер, следующий шаг – прерывание по таймеру, после чего добавляется перевод микроконтроллера в sleep режим. Казалось бы, знакомство с новой платформой можно на этом и закончить, но особо пытливые умы задействуют для реализации задержки WDT, переводя микроконтроллер в настолько глубокий режим сна, что окружающие не понимают, чему так радуется человек, видя моргающий светодиод, и что-то бубнящий о нескольких микроамперах, потребляемых устройством при этом моргании. С Came’ом то же самое. Тот же принцип переключения напряжения. Да и благодаря подробному материалу, предоставленному CodePerfect’ом о кодировке Came, только ленивый разработчик на нашем форуме ещё не сделал свой переборщик под него. Вернёмся к созданию переборщика. Нам понадобятся органы управления им. Для этого, как правило, используются кнопки, которые вешают на микроконтроллер. Но в mikroMedia имеется Touch Screen, с помощью которого, соответственно сначала нарисовав кнопки на TFT, и можно реализовать управление. Помучив библиотеку TFT_TouchPanel, понял, что вручную делать элементы на экране и обработчики их нажатий вообще не вариант. Для этого целесообразней использовать Visual_TFT. В VTFT, раскидав нужные элементы по экрану и создав для них обработчики нажатий, можно сгенерить код, который потом компилируется в mikroC. Создать новый проект в VTFT просто, мой вариант во вложении. Опишу теперь что получилось. Я ввёл в проект пять кнопок управления (видно на фото). Это кнопки Backward, Play, Stop, Record и Reload. Кнопки Play и Stop накладываются друг на друга в зависимости от состояния переборщика. Запуск осуществляется кнопкой Play, на месте которой оказывается кнопка Stop, останавливающая перебор. Backward возвращает счётчик переборщика назад на единицу с отсылкой в эфир предыдущего кода. Reload сбрасывает счётчик. Record записывает значение кода, соответствующего текущему значению счётчика. Backward, Record, Reload и передача записанного кода не будут работать во время перебора, его надо для них остановить. Скажу пару слов о записях. Пока что можно произвести три записи и то в энергозависимую память. Пока это так как проект тестовый и следующей модернизацией скорее всего будет увеличение количества записей и перенос их в EEPROM. Коды пишутся в Record #1, Record #2 и Record #3. За запись в проекте отвечает функция RecordClicked(), о которой корифеи программирования наверняка скажут, что три точки выхода из одной функции сродни использованию в ANSI C оператора GOTO. Спорить не буду, пока что она реализована криво. Красный цвет Record’ов говорит о том, что в них пусто, зелёный – о произведении записи. Щелчок по зелёному Record’у вызовет отсылку записанного кода в эфир. Обработчики всех нажатий находятся в файле came_touch_events_code.c. Теперь пару слов о встретившихся граблях. Перетаскивая в VTFT на экран метку Record #2, получил радостное сообщение о превышении допустимого количества элементов для демо-версии. Пошёл нестандартным путём и решил дописать вручную оставшиеся метки, благо они идентичные почти. Вот порядок действий для тех, кто решит пойти таким же путём. 1. В файле came_touch_driver.c в части кода определений, начинающихся с Код:
///////////////////////// TScreen* CurrentScreen; 1.1 Копируем строку Код:
TLabel LabelRecord1; Код:
TLabel LabelRecord2; TLabel LabelRecord3; Код:
char LabelRecord1_Caption[15] = "Record #1"; Код:
char LabelRecord2_Caption[15] = "Record #2"; char LabelRecord3_Caption[15] = "Record #3"; Код:
TLabel * const code far Screen1_Labels[1]= { &LabelRecord1 }; Код:
TLabel * const code far Screen1_Labels[3]= { &LabelRecord1, &LabelRecord2, &LabelRecord3 }; 2, Идём далее в функцию InitializeObjects(). 2.1 Переприсваиваем Screen1.LabelsCount значение 3, Screen1.ObjectsCount значение 8. 2.2 Копируем структуру меток из уже существующей: Код:
LabelRecord2.OwnerScreen = &Screen1; LabelRecord2.Order = 6; LabelRecord2.Left = 10; LabelRecord2.Top = 160; LabelRecord2.Width = 108; LabelRecord2.Height = 21; LabelRecord2.Visible = 1; LabelRecord2.Active = 1; LabelRecord2.Caption = LabelRecord2_Caption; LabelRecord2.FontName = Tahoma19x23_Regular; LabelRecord2.Font_Color = 0xC800; LabelRecord2.OnUpPtr = 0; LabelRecord2.OnDownPtr = 0; LabelRecord2.OnClickPtr = 0; LabelRecord2.OnPressPtr = 0; LabelRecord3.OwnerScreen = &Screen1; LabelRecord3.Order = 7; LabelRecord3.Left = 10; LabelRecord3.Top = 230; LabelRecord3.Width = 108; LabelRecord3.Height = 21; LabelRecord3.Visible = 1; LabelRecord3.Active = 1; LabelRecord3.Caption = LabelRecord3_Caption; LabelRecord3.FontName = Tahoma19x23_Regular; LabelRecord3.Font_Color = 0xC800; LabelRecord3.OnUpPtr = 0; LabelRecord3.OnDownPtr = 0; LabelRecord3.OnClickPtr = 0; LabelRecord3.OnPressPtr = 0; 3. В файле came_touch_objects.h можно добавить определения новых меток: Код:
… extern TLabel LabelRecord2; extern TLabel LabelRecord3; extern TLabel * const code far Screen1_Labels[3]; … extern char LabelRecord2_Caption[]; extern char LabelRecord3_Caption[]; … Предупреждение! Перед проделыванием описанных выше действий или после них закройте Visual_TFT, ну или не генерите больше в нём код, иначе всё придётся проделывать заново, так как при генерации кода VTFT создаёт файлы came_touch_driver.c и came_touch_objects.h заново в соответствии с представленным ему Screen’ом. 4. Для добавления обработчика нажатий на метку надо сделать следующее. 4.1 В поле OnClickPtr прописать имя функции без скобок (помимо события OnClick ещё есть и другие, можно поэкспериментировать). Код:
LabelRecord1.OnClickPtr = LabelRecord1Clicked; Код:
void LabelRecord1Clicked(); Код:
void LabelRecord1Clicked() { unsigned char j = 0; if (stopped == 1) { if (Record1 != 0) { LabelRecord1.Font_Color = CL_BLUE; DrawLabel(&LabelRecord1); for (j = 0; j < 4; j++) Came_Transmit_12bit(Record1); Delay_ms(100); LabelRecord1.Font_Color = CL_GREEN; DrawLabel(&LabelRecord1); } } } Повторюсь – проект во вложении, будут вопросы – отвечу. Последний раз редактировалось CivicDriver; 29.05.2012 в 22:03. |
![]() |
![]() |
![]() |
#16 |
Резидент клуба
Регистрация: 08.05.2011
Сообщений: 450
|
![]()
Да интересно... Да я на полторы штуки зелини заказал много чего интересного нашел в железе...
|
![]() |
![]() |
![]() |
#17 |
Резидент клуба
Регистрация: 13.03.2011
Сообщений: 212
|
![]()
Доработанный четвёртый опыт.
Добавилось: - заставка; - увеличение количества записей до 10; - сохранение записей в EEPROM; - выключение дисплея и усыпление контроллера через 10 секунд после последней активности (не касается режима перебора). |
![]() |
![]() |
![]() |
#18 |
Автор
Регистрация: 13.05.2011
Сообщений: 1,308
|
![]()
CivicDriver, респект, выглядит прикольно. Какой фпс дисплея можно выжать на этой платформе не проверял?
|
![]() |
![]() |
![]() |
#19 |
Резидент клуба
Регистрация: 13.03.2011
Сообщений: 212
|
![]()
Неа. Не проверял. А что такое фпс?
|
![]() |
![]() |
![]() |
#20 |
Автор
Регистрация: 13.05.2011
Сообщений: 1,308
|
![]()
frames per second / кадры в секунду )) интересно хватит мощи у демоплаты какой-нить мультик показать
|
![]() |
![]() |