Easyelectronics.ru

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

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



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

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

Зарегистрирован: 29 май 2010, 18:46
Сообщения: 4189
Откуда: Киев
axill писал(а):
Упустил я что то этот тип. Вот его описание:
Иногда используют WORD и DWORD для выделения такого типа, в котором разрешены битовые операции (в Кодесис, например, так принято). Ну, при определении в Си это не играет роли, но я для себя кагбэ зарубил мнемо: WORD - это битовое поле 16 разрядов.


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

Зарегистрирован: 26 мар 2013, 17:11
Сообщения: 78
Откуда: Зеленоград
Предлагаю найти какую-нибудь функцию, которая работает неправильно и выложить сюда обе версии (родную и переведенную).
Я обычно решаю проблемы снизу вверх.
То есть сначала проверяю работу низкоуровневых функций (типа putPixel или перенесения видеопамяти на экран, если используется видеопамять), потом поднимаюс ь на уровень выше (типа drawLine). Все названия функций, естественно от балды.
Так легко найти функцию, работающую неправильно.


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

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


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
вообщем не работает только 2 функции
DrawCircle
FillCircle
рисует прямоугольники - бум разбираться

похоже дело было в проводах длинных

и еще не нравиться что функции вывода текста работают очень медленно
хотя проц работает на 32Мгц
на глаз заметно как выводит строку


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
все ошибки исправлены
Спасибо axill!!!
unsigned int и просто int
в функциях играли решающее значение

все функции работают

даже картинки рисует и быстро
разобрался и со скоростью вывода текста

из за ошибки в функции вывода строки

сейчас все быстро любым шрифтом

добавлю вывод чисел и буду выкладывать для окончательного тестирования

Спасибо ребята за помощь и поддержку
я доволен проделанной работой
получил что хотел
надеюсь это еще кому нибудь пригодиться

пока работает с контроллером дисплея SSD1289
другие контроллеры дисплеев добавляются легко

есть у меня еще дисплей на ILI1920

позже проверю еще на нем


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5118
поздравляю!))

мне точно пригодится, у меня тоже есть ILI1920


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
Вот библиотека и тестовый пример
компелил под AVRStudio 4.19
поддерживает пока 2 контроллера SSD1289, ILI1920
другие добавляются легко
специфичный код впрямую переноситься из UTFT библиотеке Ардуино

макросы по работе с пинами портов находяться в файле UTFT.h

Конструктивная критика приветствуется
вопросы если будут - задавайте

займусь руссификацией пока

Спасибо еще раз всем за помощь


Вложения:
UTFT_XMEGA.rar [206.12 Кб]
Скачиваний: 264
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Переделка библиотеки UTFT arduino под чистый Си AvrStudio
СообщениеДобавлено: 19 янв 2014, 10:12 
Заглядывает иногда

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

вопрос, что делает данный макрос

#define rbi(reg, bitmask) ((*reg) & bitmask)

обнуляет пины в порту в соответствии с маской
или проверяет пин в порту на ноге bitmask


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

Зарегистрирован: 29 май 2010, 18:46
Сообщения: 4189
Откуда: Киев
dt_andrew писал(а):
#define rbi(reg, bitmask) ((*reg) & bitmask)
или проверяет пин в порту на ноге bitmask
Ставлю на "проверяет" :)


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
я тоже так думаю
Read Bit Input = rbi


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

Зарегистрирован: 29 май 2010, 18:46
Сообщения: 4189
Откуда: Киев
dt_andrew писал(а):
Read Bit Input = rbi
Ну, я асм этот не знаю, но по Сишному выходит, что reg - пойнтер, значит *reg - содержимое. Умножается на маску. Все в скобках, чтобы избавиться от сюрпризов...


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

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
dt_andrew писал(а):
что делает данный макрос
Код:
#define rbi(reg, bitmask) ((*reg) & bitmask)
- обнуляет пины в порту в соответствии с маской или проверяет пин в порту на ноге bitmask
Макрос можно по-разному применить. И не только с портами, но и слюбыми указателями.

Вот так обнуляет: *my_ptr = rbi(my_ptr, 0x03);
Вот так копирует с маской: my_val = rbi(my_ptr, 0x03);
А вот так проверяет: if (rbi(my_ptr, 0x03)) ...;


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

Зарегистрирован: 29 май 2010, 18:46
Сообщения: 4189
Откуда: Киев
AlexPM писал(а):
Вот так обнуляет: *my_ptr = rbi(my_ptr, 0x03);
Вот так копирует с маской: my_val = rbi(my_ptr, 0x03);
А вот так проверяет: if (rbi(my_ptr, 0x03)) ...;

При всем уважении... Во всех примерах ты показываешь, что макрос извлекает из порта данные. А потом уже либо присвоение (чему-то стороннему. например, переменной, на которую указывает my_ptr), либо присвоение самой переменной my_ptr, либо проверка. То есть, если говорить о битах самого порта, то указанный макрос только извлекает их, а никак не изменяет.


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
у меня почему вопрос возник
обычно проверка бита на порту выглядит как
rbi = (reg & (1 << bitmask))
а тут просто rbi = (reg & bitmask)

то есть если я укажу например
rbi(PORTA,3) то это обнулит все биты, кроме 0 и 1, но не как не проверит один из битов

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


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5118
Просто надо отличать "маска" и "номер бита"
Первое со вторым как раз и связано как "маска" = (1 << "номер бита")


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

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

это оч пригодиться для библиотеки по работе с тачскрином


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

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
dt_andrew писал(а):
хотелось бы добавить еще вывод числа в HEX формате
только не 1 байта а 4 байта то есть числа long
Тут на самом деле только вывод одной hex-цифры делается, все остальные hex-форматы - производные от одноциферного.
Код:
#define NIBBLE_TO_HEX(hdig) (hdig + ((hdig < 10) ? '0' : ('a' - 0x0a)))
#define MSB(u16)    (((UINT8*)&u16)[1])
#define LSB(u16)    (((UINT8*)&u16)[0])

void print_hexdigit(UINT8 hdig)  //print one hex-digit
{
    hdig &= 0x0F;
    lcd_putchar(NIBBLE_TO_HEX(hdig));
}

void print_hexbyte(UINT8 hval)  // 8-bit hex = digit+digit
{
    print_hexdigit(hval >> 4);  //print MS hex-digit
    print_hexdigit(hval);       //print LS hex-digit
}

void print_hexU12(UINT16 hv12)  //12-bit hex = digit+byte
{
    print_hexdigit(MSB(hv12));
    print_hexbyte(LSB(hv12));
}

void print_hexU16(UINT16 hv16)  //16-bit hex = byte+byte
{
    print_hexbyte(MSB(hv16));
    print_hexbyte(LSB(hv16));
}
Функцию вывода 32-хбитного числа намеренно пропускаю. Это Вам домашнее задание. ;-)


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
Спасибо, но для выполнения домашнего задания не хватает некоторых пояснений
NIBBLE_TO_HEX - что это и что это делает
аналогичные вопросы к
MSB
LSB
хотя последнее мне понятно
старший и младший байт от числа
правильно


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

Зарегистрирован: 15 янв 2013, 13:24
Сообщения: 5665
dt_andrew писал(а):
не хватает некоторых пояснений
NIBBLE_TO_HEX
MSB
LSB
Ладно, раз это сложно, уберём макрос NIBBLE_TO_HEX():
Код:
#define MSB(u16)    (((UINT8*)&u16)[1])
#define LSB(u16)    (((UINT8*)&u16)[0])

void print_hexdigit(UINT8 hdig)  //print one hex-digit
{
    hdig &= 0x0F;
    lcd_putchar(hdig + ((hdig < 10) ? '0' : ('a' - 0x0a)));
}

Насчёт MSB() и LSB() догадка правильная :-)

Чувствую, домашнее задание оказалось нетривиальным 8-0
Ладно, вот код самого простого варианта - с ведущими нулями:
Код:
void print_hexU32(UINT32 hv32)
{
    print_hexU16(((UINT16*)&hv32)[1]);
    print_hexU16(hv32);
}
Возможны другие варанты - с ведущими пробелами, без ведущих символов. Вам для отладки тача удобнее всего тот вариант, который я привёл.


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

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

цель не задавать таких простых вопросов, но это все со временем
а пока учиться и учиться
Спасибо еще раз что прояснили мне ситуацию многому научили


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

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


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5118
по поводу HEX
самый ленивый/простой вариант вывести цифры это использовать sprintf()
ее можно использовать для любых цифр, не только HEX
главное не надо изобретать велосипед

для маленьких проектов такой вариант жирный - sprintf достаточно много добавляет к размеру прошивки, но там где применяется дисплей 320х240 всегда берется МК с запасом, так что может быть оправдано брать sprintf
к тому же есть вероятность, что она уже использована


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

Зарегистрирован: 29 июн 2011, 12:30
Сообщения: 150
функции по выводу чисел в HEX формате реализовал
выводит 1 байт (char),
2 байта (word)
и 4 байта (long)
исправлены еще несколько недочетов
пару дней по тестирую и выложу исправленный и дополненный вариант библиотеки


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

Зарегистрирован: 20 мар 2013, 11:27
Сообщения: 5118
супер!


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

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


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

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


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

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


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

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

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