Фрикер Клуб
 

Вернуться   Фрикер Клуб > Основной раздел > Статьи

Важная информация

Ответ
 
Опции темы Опции просмотра
Старый 27.05.2012, 22:07   #11
russo_turisto
Резидент клуба
 
Аватар для russo_turisto
 
Регистрация: 21.08.2011
Сообщений: 1,158
По умолчанию Re: mikroMedia for Xmega

А сами производители этот набор высылают?
На ебее его нет.
Где можно заказать?
russo_turisto вне форума   Ответить с цитированием
Старый 28.05.2012, 21:15   #12
CivicDriver
Резидент клуба
 
Аватар для CivicDriver
 
Регистрация: 13.03.2011
Сообщений: 212
По умолчанию Re: mikroMedia for Xmega

На сайте можно заказать. Даже в рублях счёт выставят. Выбираешь платформу с нужным контроллером, возможно ещё чего к ней и заказываешь.

Добавлено через 14 минут
Сегодня модернизирована была РЧ часть - приёмопередатчик поменян на RTQ1 от Telecontrolli.
CivicDriver вне форума   Ответить с цитированием
Старый 29.05.2012, 06:45   #13
СаняЧ
Резидент клуба
 
Аватар для СаняЧ
 
Регистрация: 08.05.2011
Сообщений: 450
По умолчанию Re: mikroMedia for Xmega

Цитата:
Сообщение от tahion
Интересная платформа, можно ртос поднять и сделать нормальный графический интерфейс

Насколько я помню RTOS это Операционная Система Реального Времени а для их осуществления нужин достаточно мошьный МК

Добавлено через 17 минут
Огромное спасибо CivicDriver много интересного нашел железа на офицальном сайте уже заказал почти на полторы штуки... Как придет посылка бцду тестить и проверять.... Еще раз спосибо за призентацию железа....
СаняЧ вне форума   Ответить с цитированием
Старый 29.05.2012, 18:21   #14
CivicDriver
Резидент клуба
 
Аватар для CivicDriver
 
Регистрация: 13.03.2011
Сообщений: 212
По умолчанию Re: mikroMedia for Xmega

Цитата:
Сообщение от СаняЧ
Огромное спасибо CivicDriver много интересного нашел железа на офицальном сайте уже заказал почти на полторы штуки... Как придет посылка бцду тестить и проверять.... Еще раз спосибо за призентацию железа....

Да не за что. Судя по тому, что mikroMedia стоит 99$, поназаказывал ты на полторы штуки много чего другого. Или ты про полторы штуки баксов говоришь?
CivicDriver вне форума   Ответить с цитированием
Старый 29.05.2012, 21:54   #15
CivicDriver
Резидент клуба
 
Аватар для CivicDriver
 
Регистрация: 13.03.2011
Сообщений: 212
По умолчанию Re: mikroMedia for Xmega

Опыт четвёртый.
Создание управляемого переборщика.
Итак, создаём управляемый переборщик под 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;
идущих после функции Calibrate()

1.1 Копируем строку
Код:
 
TLabel                 LabelRecord1;
два раза и изменяем клоны следующим образом:
Код:
TLabel                 LabelRecord2;
TLabel                 LabelRecord3;
1.2 То же самое с
Код:
char LabelRecord1_Caption[15] = "Record   #1";
Добавляем
Код:
char LabelRecord2_Caption[15] = "Record   #2";
char LabelRecord3_Caption[15] = "Record   #3";
1.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;
сразу меняя поля Order, Top и Caption.


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;
4.2 В файл came_touch_objects.h добавить прототип функции обработчика.
Код:
void LabelRecord1Clicked();
4.3 В файле came_touch_events_code.c написать собственно саму функцию обработчика.
Код:
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);
      }
   }
}
В отношении других меток – аналогично, с учётом их имён.

Повторюсь – проект во вложении, будут вопросы – отвечу.
Изображения
Тип файла: jpg Фото0244.jpg (277.0 Кб, 98 просмотров)
Тип файла: jpg Фото0245.jpg (493.3 Кб, 74 просмотров)
Тип файла: jpg Фото0246.jpg (283.9 Кб, 55 просмотров)
Тип файла: jpg Фото0247.jpg (487.5 Кб, 44 просмотров)
Тип файла: jpg Фото0248.jpg (270.5 Кб, 34 просмотров)
Тип файла: jpg Фото0249.jpg (253.4 Кб, 36 просмотров)
Вложения
Тип файла: rar Came Touch.rar (421.5 Кб, 34 просмотров)

Последний раз редактировалось CivicDriver; 29.05.2012 в 22:03.
CivicDriver вне форума   Ответить с цитированием
Старый 30.05.2012, 15:10   #16
СаняЧ
Резидент клуба
 
Аватар для СаняЧ
 
Регистрация: 08.05.2011
Сообщений: 450
По умолчанию Re: mikroMedia for Xmega

Да интересно... Да я на полторы штуки зелини заказал много чего интересного нашел в железе...
СаняЧ вне форума   Ответить с цитированием
Старый 03.06.2012, 12:36   #17
CivicDriver
Резидент клуба
 
Аватар для CivicDriver
 
Регистрация: 13.03.2011
Сообщений: 212
По умолчанию Re: mikroMedia for Xmega

Доработанный четвёртый опыт.
Добавилось:
- заставка;
- увеличение количества записей до 10;
- сохранение записей в EEPROM;
- выключение дисплея и усыпление контроллера через 10 секунд после последней активности (не касается режима перебора).
Вложения
Тип файла: rar Came Touch.rar (557.4 Кб, 43 просмотров)
CivicDriver вне форума   Ответить с цитированием
Старый 03.06.2012, 14:32   #18
tahion
Автор
 
Аватар для tahion
 
Регистрация: 13.05.2011
Сообщений: 1,308
По умолчанию Re: mikroMedia for Xmega

CivicDriver, респект, выглядит прикольно. Какой фпс дисплея можно выжать на этой платформе не проверял?
tahion вне форума   Ответить с цитированием
Старый 03.06.2012, 16:01   #19
CivicDriver
Резидент клуба
 
Аватар для CivicDriver
 
Регистрация: 13.03.2011
Сообщений: 212
По умолчанию Re: mikroMedia for Xmega

Неа. Не проверял. А что такое фпс?
CivicDriver вне форума   Ответить с цитированием
Старый 03.06.2012, 16:44   #20
tahion
Автор
 
Аватар для tahion
 
Регистрация: 13.05.2011
Сообщений: 1,308
По умолчанию Re: mikroMedia for Xmega

frames per second / кадры в секунду )) интересно хватит мощи у демоплаты какой-нить мультик показать
tahion вне форума   Ответить с цитированием
Ответ
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.



Текущее время: 10:06. Часовой пояс GMT +3.


vBulletin 4.1.0 Перевод: zCarot
(C) www.phreakerclub.com