Например TDA7294

Форум РадиоКот • Просмотр темы - Таймер не работает
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Сб янв 03, 2026 09:00:49

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


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 237 ]     ... , , , 11,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:02:23 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Чуток резвее заработало.
А если ещё послушаешь что Reflector говорит, то на 100 FPS выйдешь. :))


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:12:12 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Я тоже так думаю, но не понимаю что он имеет в виду, вернее понимаю но не связанно с кодом. Много элементов я делаю там потому что без них не работает, а не потому что я знаю что это к сожалению.
Вот есть заливка
Код:
void beluidisplei(uint16_t RGBCode)
{
  uint8_t   parameter1[4],counter,counter1 ;
 
          parameter1[0] = 0x00;     
          parameter1[1] = 0x00;//Передаем Х
          parameter1[2] = 0x00;
          parameter1[3] = 0xEF;//Передаем Х
          WriteReg(0x2A, parameter1, 4);
          parameter1[2] = 0x00;
          parameter1[0] = 0x00;
   for(counter1 = 0; counter1 <240; counter1++)   
   {   
          parameter1[1] = 0x00 + counter1;// Передаем У
          parameter1[3] = 0xEF + counter1;// Передаем У
          WriteReg(0x2B, parameter1, 4);
          WriteReg(0x2C, (uint8_t*)NULL, 0);   
         for(counter = 0; counter <240; counter++)
            {FMC_BANK1->RAM = RGBCode;}     
   }
}


Вот начинается все с курсора (в примере SetPixel), зафига мы по два раза передаем х и два раза у, что за пустые строки идут с ними parameter1[2] = 0x00; parameter1[0] = 0x00;, остальное вроде интуитивно понятно. Я пытался подставлять вместо нулей цифры но ни чего хорошего не выхоило, метод тыка не удался


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:18:35 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Reflector имел в виду, что если один раз задать параметры окна вывода, то потом можно просто вывести подряд все пиксели без всяких параметров. Подробнее только даташит на индикатор расскажет, мне, если честно, лень его читать - там 300+ страниц ненужной мне информации. Как-то так
Код:
for(counter = 0; counter <240*240; counter++) { FMC_BANK1->RAM = RGBCode; }


Последний раз редактировалось VladislavS Пн дек 16, 2019 17:29:14, всего редактировалось 2 раз(а).

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:30:52 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Вы можете сказать что с моим массивом лисьем не так было?

Добавлено after 6 minutes 12 seconds:
Да как заделать туда массив я представляю, тут в другом беда, вот так передавать точки только цветом, можно только в строку. Даже в примере это делается только в функции VLIne, HLine уже строиться через DrawPixel а тот так же через курсор и тд. Вот тут засада.

Эти то уж знали как дисплей насиловать
Код:
void ST7789H2_DrawHLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
{
  uint16_t counter = 0;
 
  /* Set Cursor */
  ST7789H2_SetCursor(Xpos, Ypos);
 
  /* Prepare to write to LCD RAM */
  ST7789H2_WriteReg(ST7789H2_WRITE_RAM, (uint8_t*)NULL, 0);   /* RAM write data command */
 
  /* Sent a complete line */
  for(counter = 0; counter < Length; counter++)
  {
    LCD_IO_WriteData(RGBCode);
  } 
}

/**
  * @brief  Draw vertical line.
  * @param  RGBCode: Specifies the RGB color   
  * @param  Xpos:     specifies the X position.
  * @param  Ypos:     specifies the Y position.
  * @param  Length:   specifies the Line length. 
  * @retval None
  */
void ST7789H2_DrawVLine(uint16_t RGBCode, uint16_t Xpos, uint16_t Ypos, uint16_t Length)
{
  uint16_t counter = 0;

  /* Set Cursor */
  ST7789H2_SetCursor(Xpos, Ypos);
 
  /* Prepare to write to LCD RAM */
  ST7789H2_WriteReg(ST7789H2_WRITE_RAM, (uint8_t*)NULL, 0);   /* RAM write data command */

  /* Fill a complete vertical line */
  for(counter = 0; counter < Length; counter++)
  {
    ST7789H2_WritePixel(Xpos, Ypos + counter, RGBCode);
  }
}


Последний раз редактировалось TEPEM Пн дек 16, 2019 17:33:57, всего редактировалось 1 раз.

Вернуться наверх
 
Эиком - электронные компоненты и радиодетали
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:31:27 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Это я ещё молчу про то что если данные не надо на лету преобразовывать, а просто переложить из Flash в идикатор, то можно натравить на это дело DMA.

Вы можете сказать что с моим массивом лисьем не так было?
Я его не видел. Как я могу сказать что с ним не так было? Свой я святой водой окропил тупо сделал программой, ссылку на которую чуть выше давал.

Даже в примере это делается только в функции VLIne, HLine уже строиться через DrawPixel а тот так же через курсор и тд. Вот тут засада.
Читать даташит. Эмбеддерский опыт подсказывает, что не может индикатор не иметь режима автоинкремента позиции вывода.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:36:08 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Флеша не хватит на полноценный буфер экрана, только на заливку одним цветом(


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:38:21 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Эти то уж знали как дисплей насиловать
Только не обижайся. На какой странице темы ты выложил свой код и сказал что "всё работает, кому надо можете забирать"?

И про "насиловать" ты прямо в точку ;)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 17:45:45 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
У меня была цель чтобы без библиотек на экране хоть что то появилось)

Добавлено after 4 minutes 34 seconds:
Вот учусь читать даташит на контроллеры дисплея, вроде все понятно кроме...
0х2А передаем, это адрес столбца ок, а чуть ниже что за страшилки указаны (я их обвел красным)
Изображение

Это не инкриментация строки ? Tearing effect
line on


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Пн дек 16, 2019 18:18:13 
Поставщик валерьянки для Кота

Карма: 20
Рейтинг сообщений: 256
Зарегистрирован: Вс июн 19, 2016 09:32:03
Сообщений: 2089
Рейтинг сообщения: 0
Это не инкриментация строки ?

Вот инкрементация адреса:
СпойлерИзображение

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 04:46:18 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Это варианты ориентации экрана( я их использую


Подскажите пожалуйста, если я засуну массив с картинкой в внешнюю флешку, по quardSPI, а потом буду от туда его читать, это заметно затормозит отрисовку? И как можно посмотреть сколько реально весит моя программа?

Добавлено after 43 minutes 26 seconds:
Ура! я разгрузил обратно камень! Анимацию из основного цикла в таймер убрал и все)


Добавлено after 22 minutes 34 seconds:
Очень интересную особенность заметил, вот перерисоввываю я какой то полигон, долго и часто, и в какой то момент бульк, пробегает по нему волна и опять все нормально идет, от чего такое происходит не знаете?

Добавлено after 11 minutes 57 seconds:
Думал полигон под циферками уменьшить чтобы такого не было, убрал его, добавил переменную со старым числом, тоесть вывожу старое значение переменной белым цветом, потом новую черным. Один фиг в какой то момент волна пробегает и не реже чем с полигоном.

Добавлено after 2 minutes 11 seconds:
Думается мне надо буфер использовать чтобы такого не было, но где на него взять памяти не понятно.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 06:47:12 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Цитата:
И как можно посмотреть сколько реально весит моя программа?
В настройках линкера включить генерацию .map-файла. В нём в конце сводная информация по размеру прошивки.

Цитата:
но где на него взять памяти не понятно.
У тебя 256к RAM на борту. При желании даже два буфера можно уместить.

Цитата:
Ура! я разгрузил обратно камень! Анимацию из основного цикла в таймер убрал и все
Наивный чукотский юноша :)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 08:12:37 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Тогда попробую ночью сделать буфер кадра.
А пока Вы не спите, попробую с Вашего позволения разобраться с КватроСпи, я почитал про него, вроде интересная штука.
Полтора часа переводил регистры, их очень много, положу в виде пдф.

Вот так у меня вывешена память
СпойлерИзображение

Сейчас буду излагать свои мысли по регистрам, поправляйте пожалуйста

Добавлено after 13 minutes 37 seconds:
Первым идет по рефу - QUADSPI_CR
Я так понимаю, там какие то свои часы, которые не надо тактировать и прочие, только задать вот этими регистрами режим работы.
Тут вообще черт ногу сломит, может не все регистры надо использовать, а только какую то маленькую группу?


Вложения:
Комментарий к файлу: В корявом переводе, хоть я и поправлял переводчик, но без фанатизма
Регистры QSPI.pdf [1.41 MiB]
Скачиваний: 234
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 08:15:16 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Я QSPI никогда не пользовался. Может кто другой подскажет.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 08:35:20 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Тогда попробую разграбить пример от куба

Добавлено after 14 minutes 48 seconds:
Буду все по порядку. Вот тут я включаю альтернативные функции, но в QSPI некоторые выводы работают на вывод и на ввод, я в этом случае не указываю направление, только то что там висит QSPI ?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 08:40:17 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 1
В режиме альтернативной функции направлением ноги управляет периферийный модуль, функция которого выбрана.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 08:47:44 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Вот спасибо! А скорость тоже можно не указывать?
И я так включал АФ - GPIOD->AFR[0] = 0xC0CC00CC;
Правильно наверное GPIOD->AFR[0] |= 0xC0CC00CC; или не тут?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 09:04:45 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Скорость указывать нужно. А между операторами "=" и "|=" кроме эстетической вообще никакой разницы нет?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 09:08:32 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
= Вроде перезапишет остальные биты если они до этого были?
У меня на джостике пины не заданны не как, только протактированны, но опрашиваются исправно, я так понимаю как вход их в таком случае не обязательно задавать?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 09:18:57 
Собутыльник Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 433
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2557
Рейтинг сообщения: 0
Смотри начальное состояние ног при включении питания. Оно же какое-то из разрешённых.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Таймер не работает
СообщениеДобавлено: Вт дек 17, 2019 09:49:44 
Нашел транзистор. Понюхал.
Аватар пользователя

Зарегистрирован: Чт дек 05, 2019 16:28:11
Сообщений: 152
Откуда: Самара
Рейтинг сообщения: 0
Владислав! Я долго избегал этого, но сейчас, когда мне надо разобраться с регистрами qspi & dma, боюсь это просто необходимо, скажите пожалуйста, где вы берете волшебные слова, которыми подменяете волшебные цифры для наглядности? Вот вы писали например RCC->CR = _VAL2FLD(RCC_CR_HSITRIM,16) | RCC_CR_HSION | RCC_CR_HSEON | RCC_CR_PLLON; //Включаем PLL


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 237 ]     ... , , , 11,  

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


Кто сейчас на форуме

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


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

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


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y