Easyelectronics.ru

Электроника для всех
Текущее время: 20 сен 2018, 06:03

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



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

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

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


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

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

Основное, с чем приходится сталкиваться:
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
Сообщения: 150
Спасибо!
буду пытаться перевести
если что вопросы задам здесь
обязательно обещаю поделиться готовым переводом


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 5118
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
Сообщения: 5118
ну так фонт определяющий.
я использую полновесные кириллические фонты нескольких размеров
проект порядка 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
Сообщения: 5118
tsostik писал(а):
Посмотрел на либу. Интересно, зачем им вобще ардуина? Единственно ради класса Print? Так он лепится на коленке за десять минут, если вообще нужен.
А так - достаточно универсальная либа, если бы ее вовремя нашел - не стал бы сам писать :-)

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


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

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


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

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


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
переделал 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
Сообщения: 150
Спасибо! разобрался
вечером буду в железе проверять
завтра добью работу с шрифтами и выложу для критики и тестирования


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 150
Спасибо AlexPM. Посмотрю обязательно.
Проверил в железе.
на 90% все работает, но некоторые процедуры рисуют не правильно
то есть например 10 раз правильно потом идет чушь
думаю надо с задержками разбираться - похоже дисплей не успевает
особенно на процедурах отрисовки линий
прямоугольники и их закраска работает отлично
буду дальше тестить и исправлять


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

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


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

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


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
как ее найти вот в чем вопрос
коды еще раз сравнивал все еще раз
могут быть сбои из за проводов 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
Сообщения: 5118
искать нужно от обратного
ведь ошибки как я понял только по части функций, так?
значит обмен с контроллером и отсылка команд скорее всего работают правильно

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

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

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


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

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


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

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


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

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


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

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

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


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

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


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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

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