Обсуждаем контроллеры компании Atmel.
Сб фев 01, 2020 15:40:08
Dimon, чаще всего первый и горит, не то фиолетовым не то розовым. Ресет не помогает. После сброса питания какое то время работает нормально. Другой светящийся пиксель видел только один раз.
Сб фев 01, 2020 18:04:42
dgrett, выше сообщением я написал как проверить, проверяйте.
Вт фев 11, 2020 15:19:06
А как можно смешать цвета(RGB или по индексу)? Какова тут математика? Что то не получается.
Вт фев 11, 2020 17:09:40
Смешать практически никак нельзя.
Вт фев 11, 2020 17:30:01
Лять... Грустно
Вт фев 11, 2020 18:56:42
Вы можете смешивать "чистые" цвета, например, синий с красным... Но смешать жёлтый с сиреневыми и получить... (кстати, что в этом случае вы хотели бы получить?) что-то отличное от белого, не выйдет. Во всяком случае в рамках математики скриптов.
Я пробовал...
Вт фев 11, 2020 19:07:01
Я понимаю, что синий с красным даст магенту.
Однако, как это вычислить в скрипте? Я, конечно же, понимаю, что абсолютно точно рассчитать не получится. Я и не надеюсь на это, так как этого и не нужно. Однако приблизительно адекватный цвет получить хотелось бы. Ну, в смысле смешивая красный с зелёным не получить синий или циан.
P. S. И в каких координатах лучше считать? RGB или HSV?
Вт фев 11, 2020 19:58:08
Смешивая "чистые" цвета (чистые - это состоящие только из одной компоненты) вы никогда не получите что-то странное! И делать это можно просто "вставляя" нужную компоненту в цвет.
Красный - FF0000
Синий - 0000FF
Складываем: FF00FF (сиреневый).
Пн фев 17, 2020 18:07:11
Данная матрица - очередной повод поупражняться в изучении СТМ32. Там и памяти хватает, и DMA есть для выплевывания данных в адреску. Кстати, через SPI. Я еще не знаю, может повторю идею вышеупомянутой лампы Алекса Гайвера....
На STM32 лучше выплевать через таймер + DMA, просто шимишь, а DMA периодически пишет в CCRx.
Глянул я ваш СТМ32, проект "обрубленный" собрался, не стал голову ломать, чисто голая командная оболочка:
Спойлер
- Код:
'Invoking: Cross ARM GNU Print Size'
arm-none-eabi-size --format=berkeley "stm32f103_prim.elf"
text data bss dec hex filename
24924 2244 364 27532 6b8c stm32f103_prim.elf
'Finished building: stm32f103_prim.siz'
цифру в 24924 видите? Всего 4 функции.
Пн фев 17, 2020 19:22:45
ничего не понял
Пн фев 17, 2020 19:43:17
ничего не понял
Переход на STM32 откладывается, потому что судя по всему
Dimon456 выбрал в качестве стандартной либы такую, которая сразу несколько десятков KB для printf даже без поддержки float отжирает
Пн фев 17, 2020 19:58:37
Не знал, что бы напечатать Hello world потребуется 20к программного кода и 1к оперативки, похлеще ардуино будет.
Спойлер
Без printf- Код:
'Invoking: Cross ARM GNU Print Size'
arm-none-eabi-size --format=berkeley "stm32f103_prim.elf"
text data bss dec hex filename
2328 1108 304 3740 e9c stm32f103_prim.elf
'Finished building: stm32f103_prim.siz'
Ладно, где-то был самодельный printf, что-то около 2к кода.
Пн фев 17, 2020 20:02:53
Ладно, где-то был самодельный printf, что-то около 2к кода.
Поищи в настройках Newlib-nano.
Пн фев 17, 2020 21:18:05
Reflector писал(а):Поищи в настройках Newlib-nano.
Кое как нашел
Спойлер
Без включенной- Код:
'Invoking: Cross ARM GNU Print Size'
arm-none-eabi-size --format=berkeley "stm32f103_prim.elf"
text data bss dec hex filename
24924 2244 364 27532 6b8c stm32f103_prim.elf
'Finished building: stm32f103_prim.siz'
С включенной
- Код:
'Invoking: Cross ARM GNU Print Size'
arm-none-eabi-size --format=berkeley "stm32f103_prim.elf"
text data bss dec hex filename
6376 140 320 6836 1ab4 stm32f103_prim.elf
'Finished building: stm32f103_prim.siz'
Все равно многовато, на AVR этот код занимает 3к.
Пт фев 21, 2020 21:37:04
Собрал проект полностью под такой контроллер
Спойлер
с такими параметрами
#define BUF_SZ 512
#define PIXEL_CNT 254
получается- Код:
Program Size:
text data bss dec hex filename
15676 668 1964 18308 4784 proekt_digit_stm32f030x.elf
еще не знаю влезет или нет, компилятор раз не ругается - значит должно влезьте. В железе не проверял.
Без понятия подключиться к этому МК отладчик или нет, а то может придется отлаживать на STM32F103C8T6.
Использовал Xprintf от сюда, что еще примерно 1,5-2кБайта флеша дало. Пока без DMA, и АЦП не использовал.
Можно что нибудь еще сократить, к примеру что нибудь по удалять из файлика script_cmd.c
В протеусе наигрался с STM32F103T6 (что было в протеусе).
Пт фев 21, 2020 21:43:56
Собрал проект полностью под такой контроллер
Там реально 32К флеша и есть TIM2, просто создаешь проект для F031F6.
Пт фев 21, 2020 22:11:17
Dimon456 писал(а):Можно что нибудь еще сократить, к примеру что нибудь по удалять из файлика script_cmd.c
лучше выкинуть все, что касается printf-ов, т.е. отладочные функции консольного управения - все равно толку от них никакого в плане эксплуатации. если уж говорить о портировании проекта, то надо сохранять совместимость, а значит, из script_cmd ничего выкидывать не стоит.
любопытно было бы понять, насколько эффективнее STM32 в этом проекте. я тестировал быстродействие так: есть функция синхронизации, которая привязывает исполнение к интервалам по 10 мс. если в ней дрыгать портом, то при помощи осциллографа можно реально видеть, сколько времени тратится на исполнение скрипта, а сколько на ожидание (синхронизацию). AVR на 16 МГц без обращения к SD-карте в среднем нагружался скриптом на 2-4 мс, при том что 160 светодиодов еще отжирают никак не меньше 5 мс, то есть оставался запас в 1-2 мс. интересно, насколько больше свободного времени останется при использовании STM32?
Пт фев 21, 2020 22:55:37
AVR на 16 МГц без обращения к SD-карте в среднем нагружался скриптом на 2-4 мс, при том что 160 светодиодов еще отжирают никак не меньше 5 мс, то есть оставался запас в 1-2 мс. интересно, насколько больше свободного времени останется при использовании STM32?
Сколько времени светодиоды отжирают, столько и будет, потому что пока DMA передает старые данные будут успевать подготовиться новые. На каждые 8 бит нужно 9.6 us, эти мелкие мк гонятся до 96 MHz, таблица для 8 бит во флеше будет занимать 8*256 = 2КБ, натравливаешь на нее DMA и почти 1000 тактов делать нечего... Ну или заполняешь массив в RAM любого размера... Кстати пару месяцев назад брал мелкие F070F6P6 по $0.5, там 6КБ RAM и USB, правда с USB можно только от 48 MHz затактировать, или брать F042, но они в 2 раза дороже были.
Пт фев 21, 2020 23:04:23
Я не о теории спрашивал, а о практике, конкретно о работе Dimon456.
Сб фев 22, 2020 07:18:33
Reflector писал(а):Там реально 32К флеша
Какой сюрпрайз !?
STM Flash Loader запрашивает идентификатор чипа, и чем же вы программируете этот сюрпрайз?, как обходите ограничение?
Reflector писал(а): и есть TIM2, просто создаешь проект для F031F6
А не проще подкорректировать файлик ld? Не ну если из-за TIM2.
Спойлер
- Код:
rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x00004000
rom (rx) : ORIGIN = 0x08000000, LENGTH = 0x00008000
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.