06.07.2021, 21:19
|
#11
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: RTX-Blinky и sprintf
#include "LX12864.h"
volatile long ulADC1Result = 0; // Variable that ADC1DAT is read into in ADC1 IRQ
float fVoltage = 0.0; // ADC value converted to voltage
void ADC1INIT(void);
void DACINIT(void);
osThreadId t_ledOn; /* assigned task id of task: ledOn */
osThreadId t_ledOff; /* assigned task id of task: ledOff */
/*----------------------------------------------------------------------------
Task 1 'ledOn': switches the LED on
*---------------------------------------------------------------------------*/
void ledOn (void const *argument) {
for (; {
DioClr(pADI_GP1, BIT3); // Toggle P1.3
osDelay (200);
osSignalSet (t_ledOff, 0x0001); /* send event to task 'ledoff' */
osSignalWait (0x0001, osWaitForever);
}
}
/*----------------------------------------------------------------------------
Task 2 'ledOff': switches the LED off
*---------------------------------------------------------------------------*/
void ledOff (void const *argument) {
uint8_t mLen;
uint8_t bufRT[20] = "";
ADC1INIT(); // Setup ADC1
for (; {
osSignalWait (0x0001, osWaitForever); /* wait for an event flag 0x0001 */
DioSet(pADI_GP1, BIT3); // Toggle P1.3
osDelay (200);
fVoltage = (ulADC1Result * (1.2 / 268435456)); // Calculate ADC result in volts
snprintf ((char*)bufRT, 16, "V= %2.5f ", fVoltage ); // (char*)
mLen = strlen((char*)bufRT); // (char*)
if (mLen ‹64) LcmPutStr(10,0, bufRT);
osSignalSet (t_ledOn, 0x0001);
}
}
osThreadDef(ledOn, osPriorityNormal, 1, 0);
osThreadDef(ledOff, osPriorityNormal, 1, 0);
/*----------------------------------------------------------------------------
Main: Initialize and start RTX Kernel
*---------------------------------------------------------------------------*/
int main (void) {
SystemCoreClockUpdate();
DioOen(pADI_GP1,0xFF);
DioSet(pADI_GP1,0xFF);
LcmInit();
LcmPutBmp(bmp1);
lcd_delay(5000000);
LcmClear(0);
t_ledOn = osThreadCreate(osThread(ledOn), NULL);
t_ledOff = osThreadCreate(osThread(ledOff), NULL);
osDelay(osWaitForever);
while(1);
}
|
|
|
|
06.07.2021, 22:51
|
#12
|
Гуру портала
Регистрация: 17.07.2010
Адрес: мурмурляндия
Сообщений: 10,712
Сказал спасибо: 189
Сказали Спасибо 3,194 раз(а) в 2,071 сообщении(ях)
|
Re: RTX-Blinky и sprintf
не понимаешь что такое скрин?
__________________
кагмаподэ магмаподэ
|
|
|
|
07.07.2021, 09:44
|
#13
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Добавил таймеров в настройках RTX - OS_TIMERS 2, по умолчанию стоял 1.
Сразу исчезли проблемы.
Короче, нужна инструкция по правильной настройке RTX.
Подключил SPI в режиме DMA к дисплею.
Файл картинки режу по 64 байта в буфер, затем запускаю DMA и эти 64 байта выгружаются через SPI в контроллер ILI9341.
Все это впихнуто как одна из задач под RTX, две другие задачи моргают светодиодиком - типовой Blink RTX. (работают 3 задачи)
Картинка выводится на дисплей, затем через пару секунд стирается. И все это повторяется через 10 секунд.
Но, после пятого цикла вывода картинки на дисплей - все виснет. Светодиодик RTX начинает моргать раз в 10 медленнее - картинка зависает в процессе вывода, всегда в одном месте.
Сама RTX не затыкается, просто начинает медленно работать.
А вот задача с выводом картинки затыкается.
Что бы такое настроить, что бы этого не происходило?
Нашел причину этого безобразия.
В обработчике прерываний была ошибка.
Стояла проверка номера прерывания - первое должно игнорироваться.
Исправил.
void DMA_SPI1_TX_Int_Handler()
{
DmaSet(DMARMSKSET_SPI1TX,DMAENSET_SPI1TX,0,0);
// ucIrqCnt++;
if (ucIrqCnt ==0) { ucIrqCnt=1; } // Ignore first interrupt
else ucSPIDMAEnable = 1;
}
Сделал шрифт 32x32 бит, программой GLCD Font Creator.
Попиксельно нормально выводит картинку.
Но при подключении DMA SPI вывод получается побайтно и в другую плоскость рисует знаки.
Нужно бы шрифт повернуть на 90 градусов - это потому что дисплей тоже повернут на 90 градусов.
Не получилось в программе повернуть матрицу шрифта на 90 градусов.
Или я что то делаю не правильно?
Как вообще шрифт повернуть на 90 градусов?
Последний раз редактировалось mike-y-k; 08.08.2021 в 14:41.
|
|
|
|
08.08.2021, 11:50
|
#14
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: RTX-Blinky и sprintf
Сообщение от optical illusion
|
Как вообще шрифт повернуть на 90 градусов?
|
Два по сорок, а сверху - разбавленной ( 1 : 3 ).
Есть алгоритмы поворота картинки. Но там много тригонометрии.
И вообще - программеру, да задавать такие вопросы? Зачем тогда быть программером? Лучше быть манагером - "не царское это дело, прикажу (спрошу, попрошу, ...) - и ... (сделают)"
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.08.2021, 12:03
|
#15
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: RTX-Blinky и sprintf
Все просто. Интерфейс SPI, очень медленно выводит картинку на дисплей МК. Если еще там же поворачивать матрицу шрифта -это вообще все "замерзнет".
Если речь идет что бы самому написать программу типа GLCD Font Creator, т.е. которая генерит шрифты - то да это дело не "царское". Таких программ великое множество - я протестировал с десяток - но не одна из них не может повернуть матрицу знака.
GLCD всем хороша, но эта функция не работает.
Зачем писать еще свою программу обработки шрифтов?
Их уже сотни понаписаны.
Проще спросить у знающих людей - минутное дело так то.
|
|
|
|
08.08.2021, 12:29
|
#16
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: RTX-Blinky и sprintf
Сообщение от optical illusion
|
Интерфейс SPI, очень медленно выводит картинку на дисплей МК
|
Откровение... Вы его с Ивасями не путаете? Или Вы его на 50 Гц настроили?
Сообщение от optical illusion
|
Если еще там же поворачивать матрицу шрифта -это вообще
|
"полный вперед!" Дома нельзя это сделать?
Сообщение от optical illusion
|
написать программу типа GLCD Font Creator, т.е. которая генерит шрифты - то да это дело не "царское"
|
Смотрю, думать - не царское. Вместо поворота шрифта замахиваться на создание оного.
Сообщение от optical illusion
|
Их уже сотни понаписаны.
|
"Хочешь, чтобы было сделано КАК НАДО ? Сделай САМ !"(с)
Вероятность того, что что-то сделанное одним программером полностью удовлетворит другого - гораздо меньше 1/2.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.08.2021, 12:38
|
#17
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Re: RTX-Blinky и sprintf
Вижу какая то "болезненная реакция" на тему шрифтов?
ладно, поищу в другом месте...
|
|
|
|
08.08.2021, 12:46
|
#18
|
Гражданин KAZUS.RU
Регистрация: 17.06.2008
Адрес: Украина
Сообщений: 727
Сказал спасибо: 363
Сказали Спасибо 803 раз(а) в 377 сообщении(ях)
|
Re: RTX-Blinky и sprintf
optical illusion, попробуйте поиграться с LCD Image Converter.
Эта штука умеет вращать на 90 и 180 градусов; а уж подойдёт ли это вам - сможете оценить сами.
|
|
|
Сказали "Спасибо" j-Roger
|
|
|
08.08.2021, 12:47
|
#19
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,058
Сказал спасибо: 2,563
Сказали Спасибо 11,890 раз(а) в 5,964 сообщении(ях)
|
Re: RTX-Blinky и sprintf
Сообщение от optical illusion
|
Вижу какая то "болезненная реакция" на тему шрифтов?
|
Вижу - какая-то болезненная реакция на тему "сделай сам, причем, так, как самому тебе надо".
Сообщение от optical illusion
|
ладно, поищу в другом месте
|
Ладно, интерес к Вам потерян ввиду Вашего желания получать все готовенькое. Хотя "говно вопрос" "выеденного яйца не стоит"(с).
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.08.2021, 15:26
|
#20
|
Прописка
Регистрация: 17.08.2013
Сообщений: 287
Сказал спасибо: 10
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
|
Щас скачается LCD Image Converter, гляну как там отработает вращение матрицы.
Запустил LCD Image Converter. Действительно символы она поворачивает.
Но плохо что она не может выключать цвет (или я не нашел).
Сформировал font 17x18, для символа 0x36 получилось 918 байт запись.
На каждый пиксель 3 байта цвета. Без цвета должно быть 18 байт строк и 3 байта столбцов - т.е. 54 байта. Ну я конечно попробовал преобразовать эту запись в 54 байта, но на дисплее картинка цифры "6" все равно не получилась, разными способами выводил и побайтно и побитово. Еще какие то настройки не правильно выставлены. Нужно разбираться с ней подробно.
Последний раз редактировалось mike-y-k; 09.08.2021 в 01:39.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 03:00.
|
|