Easyelectronics.ru

Электроника для всех
Текущее время: 12 дек 2018, 14:55

Часовой пояс: UTC + 5 часов




Начать новую тему Ответить на тему  [ Сообщений: 61 ]  На страницу 1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 12 янв 2014, 09:56 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
Имеется дисплей TFT 320х240 на контроллере ssd1289
попробывал найти библиотеку в сети
что то нашел и попробывал применить
то не работат половина или не работает вовсе
библиотека под Ардуино UTFT на плате Ардуино 2560 прекрасно работает, и в ней есть все что надо
хотелось бы перевести ее под чистый Си
в прямую перевести не удалось
вообще это задача решаемая или я многого хочу
познание в Си не плохие, но не проффессиональное
по какому пути пойти или может есть у кого библиотека под AVR на данный дисплей
оч много библ на STM32? но там я в исходниках больше половины понять не могу


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 12 янв 2014, 12:20 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
Перевод на Си вполне решаемая задача.
Переводил несколько библиотек

Основное, с чем приходится сталкиваться:
1. Убрать описания классов и заменить названия методов на функции. Я просто беру и заменяю :: на знак подчеркивания. Например UTFT::draw() превращается в UTFT_draw()
2. Поля класса пакую в обычную сишную структуру и заменяю в коде обращение к ней
3. Если есть overloaded методы с одинаковыми названиями, но разным набором параметров - надо назначить уникальные имена, Си иначе не поймет
4. Заменить чисто ардуиновские вещи на AVR, основной пример - обращение к портам ввода вывода. Но кстати в UTFT обращение к портам почти везде сделано как раз напрямую, без ардуиновских функций

По ходу может быть что то еще
Удобнее всего делать так:
- делается копия всех файлов библиотеки, меняем .cpp на .c
- настраиваем тестовый проект в атмел студио
- комментарим целиком весь код в файлах .h и .c
Лучше всего через пункт edit/advanced комментарить двойными слэшами а не /**/
- начиная с функций инициализации расскоментариваем и перекодируем на си после чего делаем тестовую компиляцию
И так до полного удовлетворения

Такой подход позволяет "сьесть мамонта маленькими кусочками"
Да и запуститься можно до перевода всех функций

Я так недавно переделал либу для панели ht132c с sureelectronics

П.с. Не забудьте поделиться результатом) у меня тоже есть такой дисплей
Готов подсказать по ходу если что


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 12:09 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
Спасибо!
буду пытаться перевести
если что вопросы задам здесь
обязательно обещаю поделиться готовым переводом


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 16:43 
Заглядывает иногда

Зарегистрирован: 26 мар 2013, 17:11
Сообщения: 78
Откуда: Зеленоград
axill писал(а):
Я так недавно переделал либу для панели ht132c с sureelectronics

О, знакомая панель -)
А я в итоге плюнул и с нуля написал, благо по ощущениям это оказалось проще чем чужое переделывать. Правда на плюсах.
Ради академического интереса - какой у вас итоговый размер либы получился? По


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 17:46 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
tsostik писал(а):
А я в итоге плюнул и с нуля написал, благо по ощуениям это оказалось проще чем чужое переделывать. Правда на плюсах.
Ради академического интереса - какой у вас итоговый размер либы получился? По
[/quote]
тоже был готов с нуля написать, но там довольно мудреная логика из за сдвиговых регистров на CS
переписать по моему вышло проще, тем более нашел библиотеку с широким набором функций

в отдельную библиотеку не компилировал, да и в моем проекте основное место занимают шрифты, они определяющие размер
сам Сишный код не такой уж и большой
оптимизацией тоже пока не занимался )) мега128 дает повод расслабиться


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 18:02 
Заглядывает иногда

Зарегистрирован: 26 мар 2013, 17:11
Сообщения: 78
Откуда: Зеленоград
axill писал(а):
тоже был готов с нуля написать, но там довольно мудреная логика из за сдвиговых регистров на CS
переписать по моему вышло проще, тем более нашел библиотеку с широким набором функций


По моим ощущениям, в жизни логика там оказалась куда проще, чем в даташите производителя, так что в итоге не стал даже аппаратный SPI использовать ни для данных ни для CS, а обошелся тупым ногодрыгом.
В итоге с двумя фонтами по 11 символов (мне больше не нужно) 6x8 и 12x16 влез в пару килобайт, насколько я помню, оптимизацией тоже не занимался.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 19:02 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
ну так фонт определяющий.
я использую полновесные кириллические фонты нескольких размеров
проект порядка 17кб без учета других библиотек
с 22 символами думаю теже 2к будет
в библиотеке которую браз за основу тоже ногодрыг http://code.google.com/p/ht1632c/

так вышло с бегущей строкой
Show

так часы
Show


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 20:50 
Заглядывает иногда

Зарегистрирован: 26 мар 2013, 17:11
Сообщения: 78
Откуда: Зеленоград
Посмотрел на либу. Интересно, зачем им вобще ардуина? Единственно ради класса Print? Так он лепится на коленке за десять минут, если вообще нужен.
А так - достаточно универсальная либа, если бы ее вовремя нашел - не стал бы сам писать :-)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 13 янв 2014, 21:25 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
tsostik писал(а):
Посмотрел на либу. Интересно, зачем им вобще ардуина? Единственно ради класса Print? Так он лепится на коленке за десять минут, если вообще нужен.
А так - достаточно универсальная либа, если бы ее вовремя нашел - не стал бы сам писать :-)

так на самом деле со многими библиотеками ардуино
UTFT про которую ТС пишет - там тоже сплошной хардкод (ну в смысле прямая работа с переферией без использования прослойки ардуино)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 10:25 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
процентов 20-30 перевел
то есть основные функции
теперь вопрос как перевести функции где используется класс strings arduino
или забить на него и оставить вывод символа и просто строки
пишу под xmega256
под другой проц перепишите дефайны ногодрыга и все
стоит ли выкладывать промежуточные наработки или уже окончательный вариант для тестирования потом выложить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 11:06 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
String надо переписывать под char*
думаю лучше выложить результат, ну или если хотите комментарии услышать по полученному коду, то можно и промежуточный код выложить


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 13:48 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
переделал 70%
остались только работа с фонтами и вывод символа и строки

в функции прорисовки BitMap есть вызов функции sin() cos()
где их взять
в недрах ардуины покопался их нет там


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 14:53 
Заглядывает иногда

Зарегистрирован: 26 мар 2013, 17:11
Сообщения: 78
Откуда: Зеленоград
sin() и cos() - стандартные математические функции определенные в C.
Добавьте #include <math.h> (или #include <cmath>, если используется компилятор C++)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 14:58 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
Спасибо! разобрался
вечером буду в железе проверять
завтра добью работу с шрифтами и выложу для критики и тестирования


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 17:06 
Старожил

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
dt_andrew писал(а):
Имеется дисплей TFT 320х240 на контроллере ssd1289
... ...
может есть у кого библиотека под AVR на данный дисплей
Обсуждая другую тему, случайно вспомнил, что есть такая партиябиблиотека для SSD1289 под AVR. И пример проекта на Си под это дело - там же.
Посмотрите, может быть, пригодится.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 14 янв 2014, 17:17 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
Спасибо AlexPM. Посмотрю обязательно.
Проверил в железе.
на 90% все работает, но некоторые процедуры рисуют не правильно
то есть например 10 раз правильно потом идет чушь
думаю надо с задержками разбираться - похоже дисплей не успевает
особенно на процедурах отрисовки линий
прямоугольники и их закраска работает отлично
буду дальше тестить и исправлять


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 08:10 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
Перевел 1 в 1, но большая часть функций рисует неправильно
ума не приложу почему
под ардуиной все работает у меня нет
переводил 1 в 1 , сам ничего не придумывал
заменил чисто ардуиновские вещи прямым обращением к портам
больше там ничего специфического и нет


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 10:12 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
Чудес не бывает, где то ошибка


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 10:33 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
как ее найти вот в чем вопрос
коды еще раз сравнивал все еще раз
могут быть сбои из за проводов 10см которыми подключается дисп к моей плате
в ардуино он напрямую вставляется в шилд
хотя гонял на своем проце на частоте 2Мгц
все одно таже хрень


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 11:20 
Старожил
Аватара пользователя

Зарегистрирован: 29 май 2010, 18:46
Сообщения: 4189
Откуда: Киев
dt_andrew писал(а):
как ее найти вот в чем вопрос
За что и не люблю чужие продукты... Когда свое пишешь, ситуации тоже бывают, но как-то все выглядит не столь тупиково.
Думаю, если сидение над поиском (механической, а какой же еще?) ошибки не даст ризалта, придется все же вникать в задумку авторов либы. С последующим "делением пополам", как методом поиска места возникновения проблемы. Хотя... у кажого свои методы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 11:54 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
искать нужно от обратного
ведь ошибки как я понял только по части функций, так?
значит обмен с контроллером и отсылка команд скорее всего работают правильно

нужно выделить те функции, которые ошибочны и понять что такоего специфичного в них происходит, возможно они все вызывают одну и туже функцию внутри и дело может быть в ней

речь идет о какой-то глупой ошибке. Был бы перевод кода с другой платформы, другого МК - там нюансов могла быть туча
А здесь тупо с С++ на С - нюансов практически нет, наверняка глупая штука какая, может банально опечатались.
Может помочь еще тупая сверка с помощью какой-нубидь программы сравнения текстовых файлов - сравнить исходник для ардуино и то, что у вас получилось

с типами данных точно ничего не меняли? Может где по ходу с оптимизировали int на uuint8_t? С этим легко ошибиться, вроде с ходу можно заменить, а при внимательном копании то знак важен оказывается, то переполнение где-то вылезает и замена типа дает другой результат


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 12:01 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
код я сравнивал
а вот int точно менял на unsigned int
попробую привести в полное соответсвие с ардуиновским кодом
и попутно вопрос тип word = типу int
или лучше написать uint32


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 12:10 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
что именно вы называете word?
обычно word называют тип из двух байт, но именно так ни один тип в Си не назван


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 12:21 
Заглядывает иногда

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 151
просто в некоторых функциях ардуино переменная определена как тип word
как лучше его определить у меня


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 17 янв 2014, 13:35 
Старожил

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5226
Упустил я что то этот тип. Вот его описание:

Цитата:
A word stores a 16-bit unsigned number, from 0 to 65535. Same as an unsigned int.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 61 ]  На страницу 1, 2, 3  След.

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: Snake


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

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB