Easyelectronics.ru

Электроника для всех
Текущее время: 26 май 2018, 11:26

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



    • JLCPCB - Платы прототипов всего за 2$ c бесплатной доставкой (при первом заказе)
    • 10 PCBs за $2 для 2 слоев, $15 для 4 слойной, $74 для 6 слойной платы.
    • Крупнейший китайский производитель прототипных плат. 290000+ клиентов & 8000+ заказов в день!
    • 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
Сообщения: 4930
поздравляю!))

мне точно пригодится, у меня тоже есть 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 Кб]
Скачиваний: 255
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 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
Сообщения: 4930
Просто надо отличать "маска" и "номер бита"
Первое со вторым как раз и связано как "маска" = (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
Сообщения: 4930
по поводу 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
Сообщения: 4930
супер!


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

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


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

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


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

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


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

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

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