Jump to content

    

nanorobot

Участник
  • Content Count

    407
  • Joined

  • Last visited

Community Reputation

0 Обычный

About nanorobot

  • Rank
    Местный
  • Birthday 02/05/1962

Recent Profile Visitors

3087 profile views
  1. Графическая библиотека LVGL -да, в исходниках. Ваше предложение понятно, что можно я уже таким мерами и сделал, результат не очень. Кроме того, библиотека довольно развитая, там все эти возможности есть, просто пока не получилось найти верный подход. Решение ищешь один раз, а используешь потом многократно, так что "помучиться" смысл есть.
  2. Сложно выбрать правильный раздел форума, продолжу здесь. Начнаю худо бедно делать GUI. Использую LVGL / RT-Thread. Готовых виджетов, понятное дело не хватает . Да простит меня автор LVGL, делаю свой на базе lv_bar. В исходном варианте он только для вывода. У меня он используется для ввода, приблизительно как lv_slider. Это мне удалось. Кроме того на на lv_bar привязывается lv_label (это стандартная фича LVGL), на котором отображается текущее значение изменяемой величины. Так вот, никакими силами мне не удается сделать что бы lv_label располагался в цетре lv_bar. Игры с разнообразными align и fit не приводят ни к каим изменениям, lv_label все время расположен в левом верхнем углу lv_bar. Подскажите, или направьте в соответствующий раздел форума.
  3. В доке самый минимум, часто просто упоминание регистра и в двух словах назначение. Исходники с гитхаба очень помогают. Все стадии обмена тоже формируются "железом" но не в один присест - через манипуляции регистрами I2C_DATA и I2C_CTL. PS. Отчасти оклеветал. I2C_ADDR как раз описан более менее, просто я как то мимо проехал..
  4. Ага, спасибо. Собственно с i2c у меня уже проблем нет, но в этом проекте тоже много полезного.
  5. Не понял. Зачем ведущему хранить адрес ведомого где то, кроме памяти. По крайней мере в случае использования аппаратного TWI, как мастера, регистры I2C_ADDR и I2C_XADDR не используются. Поясните Вашу мысль?
  6. Ну не знаю... На v3s аппаратный TWI запустил за один день, при условии что с камешком раньше дела не имел, не показалось что долго. Из преимуществ - возможность сделать всю работу по прерываниям.. Ну вот есть у меня такой фетиш - реалтайм...
  7. Да я уже понял что бред написал. Чисто глядя исходники инициализации мастера. Про режим слейва мысль в голову не зашла. Ну уж удалять не стал. А I2C аппаратный запустил. Пять минут назад, буквально.
  8. Предыдущий вопрос решил использованием таймера. UART + RS485 в режиме DMA работает. Следующий пункт I2C. При наличии в V3S аппаратных итерфейсов TWI (I2C) драйвера I2C для RT-Thread @V3S реализованы ногодрыгом и запустить их пока не удалось. Решил писать свой, используя аппаратный TWI. Роюсь в тех же исходниках - rpidmx512 и XBOOT. Ни в одном из них не обнаружил использования регистров I2C_ADDR и I2C_XADDR - они вообще зачем то нужны?
  9. Мысль интересная. Единственое "но" в том что слегка нарушается идеология rt-thread в плане использования rt_device. Хотя вероятно этим можно пренебречь. Возможно там и все драйвера не лучше уартовского. использовать только шедулер, сервисы ядра...
  10. Похоже не совсем 16550. У того 7 бита в IER не было.. .. то есть для RS 485 только таймер.
  11. Очередная сложность. Допилил штатный драйвер UART RT-Thread для работы с прерываниями/дма- изначально такой возможности в нем нет, хотя и предусматривалась (возможность использования флага RT_DEVICE_FLAG_DMA_TX при открытии). Так вот получить прерывание по ПОЛНОМУ ОКОНЧАНИЮ передачи (мне необходимо управлять переключением драйвера RS485) не получается никаким образом. Прерывание происходит по опустошению регистра хранения передаваемого символа, а не сдвигового регистра передачи. То есть последний символ еще передается, а прерывание по окончании передачи уже случилось. Что то здесь китайские товарищи не доработали.. Можно конечно и таймер запустить на передачу последнего символа, но это уже какой то некрасивый костыль. У уважаемых гуру эта проблема решена? PS. Предположил, что в этом вопросе может помочь 7 бит из регистра UART_IER описанный как "Programmable THRE Interrupt Mode Enable" - но тоже нет. Назначение данного бита как то совсем неясно.
  12. Разбираюсь с DMA. Копаю исходники проекта rpidmx512. Регулярно встречаю макросы содержащие 'COHERENT_REGION ' и указывающие на область памяти начинающейся с адреса H3_MEM_DRAM_START + 0x400000. Эта область памяти чем то уникальна? В V3S тоже есть аналогичная? Доступные даташиты для v3s и h4 слова coherent не знают..
  13. Да, вопрос был сформулирован сумбурно. Проблема решена,. Причина была в том, что сброс UARTа в регистре BUS_SOFT_RST_REG4 производится не значением 1 в соотв. бите, как в привычных мне STM32 а значением 0. То есть я пытался инициализировать UART, находящийся в состоянии сброса.
  14. вероятнее всего да. Особенно после пары перезагрузок...