Вопрос к сообществу такого плана: собрал версию m16-20180501 с гитхаба в конфигурации мега16-TDA7313-LM7001. Прошивка собирается, в редакторе EEPROM (редактор для меги8) поменял конфигурацию на TDA7313 и LM7001. Так вот TDA7313 работает очень хорошо, а тюнер нет. Перестройка на экране идет, такое впечатление что нет обмена с LM7001. Сам тюнер заведомо рабочий, на прошивке от dt-andrew работал. Что я делаю не так?
Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
Здравствуйте.
Вопрос к сообществу такого плана: собрал версию m16-20180501 с гитхаба в конфигурации мега16-TDA7313-LM7001. Прошивка собирается, в редакторе EEPROM (редактор для меги8) поменял конфигурацию на TDA7313 и LM7001. Так вот TDA7313 работает очень хорошо, а тюнер нет. Перестройка на экране идет, такое впечатление что нет обмена с LM7001. Сам тюнер заведомо рабочий, на прошивке от dt-andrew работал. Что я делаю не так?
Вопрос к сообществу такого плана: собрал версию m16-20180501 с гитхаба в конфигурации мега16-TDA7313-LM7001. Прошивка собирается, в редакторе EEPROM (редактор для меги8) поменял конфигурацию на TDA7313 и LM7001. Так вот TDA7313 работает очень хорошо, а тюнер нет. Перестройка на экране идет, такое впечатление что нет обмена с LM7001. Сам тюнер заведомо рабочий, на прошивке от dt-andrew работал. Что я делаю не так?
- Реклама
С подключением точно всё правильно?
Я такой тюнер уже очень давно не подключал, поэтому лучше бы ещё у кого-нибудь спросить, если пользуется кто-то, рабочий ли. Мало ли, что-то могло сломаться.
P.S. Ещё попробуйте в функцию SPIswInit() (spisw.c) добавить вызов SPIswInitLines(). Похоже, что действительно забыт перевод пинов в режим выхода.
P.P.S. Похоже, аналогичный баг и в ATmega8 варианте. На ATmega32 всё ОК. В общем, для ATmega8 и ATmega16 поправил код и залил на Github.
Код: Выделить всё
// EXT outputs definitions
#define EXT_0 C
#define EXT_0_LINE (1<<2)
#define EXT_1 C
#define EXT_1_LINE (1<<3)
#define EXT_2 C
#define EXT_2_LINE (1<<4)
// Software SPI definitions
#define SPISW_DI EXT_0
#define SPISW_DI_LINE EXT_0_LINE
#define SPISW_CLK EXT_1
#define SPISW_CLK_LINE EXT_1_LINE
#define SPISW_CE EXT_2
#define SPISW_CE_LINE EXT_2_LINEP.S. Ещё попробуйте в функцию SPIswInit() (spisw.c) добавить вызов SPIswInitLines(). Похоже, что действительно забыт перевод пинов в режим выхода.
P.P.S. Похоже, аналогичный баг и в ATmega8 варианте. На ATmega32 всё ОК. В общем, для ATmega8 и ATmega16 поправил код и залил на Github.
Отчет о проделанной работе:
Попробовал собрать исправленную версию. Выдает ошибки:
Severity Code Description Project File Line
Error implicit declaration of function 'SPIswInitLines' [-Werror=implicit-function-declaration] main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20
Severity Code Description Project File Line
Error 'extFunc' undeclared (first use in this function) main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20
Severity Code Description Project File Line
Error recipe for target 'build/main.o' failed main D:\!Downloads\ampcontrol-m16\main\Debug\Makefile 151
В файл main.c вставил
стало:
Severity Code Description Project File Line
Error 'extFunc' undeclared (first use in this function) main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20
Severity Code Description Project File Line
Error recipe for target 'build/main.o' failed main D:\!Downloads\ampcontrol-m16\main\Debug\Makefile 151
Тогда просто сделал:
и проект стал собираться нормально, ну и самое главное радио на LM7001 заработало - УРААА!
Проект собираю в Atmel Studio 7.
WiseLord спасибо за помощь
Попробовал собрать исправленную версию. Выдает ошибки:
Severity Code Description Project File Line
Error implicit declaration of function 'SPIswInitLines' [-Werror=implicit-function-declaration] main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20
Severity Code Description Project File Line
Error 'extFunc' undeclared (first use in this function) main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20
Severity Code Description Project File Line
Error recipe for target 'build/main.o' failed main D:\!Downloads\ampcontrol-m16\main\Debug\Makefile 151
В файл main.c вставил
Код: Выделить всё
#include "spisw.h"Severity Code Description Project File Line
Error 'extFunc' undeclared (first use in this function) main D:\!Downloads\ampcontrol-m16\main\Debug\main.c 20
Severity Code Description Project File Line
Error recipe for target 'build/main.o' failed main D:\!Downloads\ampcontrol-m16\main\Debug\Makefile 151
Тогда просто сделал:
Код: Выделить всё
#ifdef _SPISW
// SPIswInitLines(extFunc);
OUT(SPISW_DI);
OUT(SPISW_CLK);
OUT(SPISW_CE);
#endifПроект собираю в Atmel Studio 7.
WiseLord спасибо за помощь
Да, допустил ошибку, и забыл проверить, компилируется.
Чуть поправил код. Попробуйте, если не сложно.
Чуть поправил код. Попробуйте, если не сложно.
Только что попробовал - все собирается и отлично работает. Ещё раз спасибо за помощь 
- Реклама
Сегодня в разрабатываемом под STM32F103 варианте полностью поменял формат шрифтов.
Теперь шрифт не ограничен 256 символами, имеется полноценная поддержка Unicode (в стандарте UTF-8).
То есть, если даже прямо в коде написать что-то кириллицей (или любым другим языком), то это будет выведено (естественно, если нужный unicode-символ есть в выбранном шрифте.
Такой подход позволит в дальнейшем сделать более простой локализацию на нужный язык. Возможно, при наличии места в Flash-памяти, все поддерживаемые языки будут в прошивке сразу, нужный будет выбираться в настройках. А если кто-то захочет поменять какие-то надписи под себя, будет оставлена возможность сделать это по аналогии с вариантом на ATmega32.
Основная причина всей этой замены формата шрифтов - надоело рисовать шрифты чуть ли не руками в коде, правя байтики-битики. Сейчас шрифты можно отредактировать или сгенерировать новые в программе LCD Image Converter - наверное самая лучшая и функциональная из всех, что я вообще видел. Плюс, с открытым исходным кодом и собирается (так как написана на QT) не только под Windows.
Судя по отсутствию активности в Github, автор, похоже, её немного подзабросил год назад, поэтому я утянул её к себе, поправил ошибки сборки, пофиксил пару мелких багов и добавил шаблоны для генерации шрифтов, которые подходят для Ampcontrol.
Если кому-то нужна готовая сборка под Windows - можно взять у меня на Github в релизах.
Сами исходники шрифтов в xml-формате и необходимые шаблоны для программы - в исходниках ampcontrol-f103
Также было бы здорово, если бы кто-то захотел взяться за рисование нормальных шрифтов для 320x240 (и выше) дисплеев. Всё-таки то, что есть сейчас - шрифты высотой 8, 24 и 32(цифры) - это хорошо для 128x64, но недостаточно для больших разрешений. Приходится масштабировать символы, и выглядит слишком уж пикселизированно. Было бы здорово иметь хорошие и гладкие шрифты покрупнее.
Лично я пока нахожу очень неплохим вариантом шрифт Terminus, который я сам планировал использовать как базовый в будущем. Но, может быть, кто-то предложит ещё что-то интересное. Например, шрифты а-ля семисегментник (для отображения частоты FM, например).
P. S. Да, иконки в программе тоже можно рисовать, так что если кто-то желает поиграться и с этим - welcome.
Теперь шрифт не ограничен 256 символами, имеется полноценная поддержка Unicode (в стандарте UTF-8).
То есть, если даже прямо в коде написать что-то кириллицей (или любым другим языком), то это будет выведено (естественно, если нужный unicode-символ есть в выбранном шрифте.
Такой подход позволит в дальнейшем сделать более простой локализацию на нужный язык. Возможно, при наличии места в Flash-памяти, все поддерживаемые языки будут в прошивке сразу, нужный будет выбираться в настройках. А если кто-то захочет поменять какие-то надписи под себя, будет оставлена возможность сделать это по аналогии с вариантом на ATmega32.
Основная причина всей этой замены формата шрифтов - надоело рисовать шрифты чуть ли не руками в коде, правя байтики-битики. Сейчас шрифты можно отредактировать или сгенерировать новые в программе LCD Image Converter - наверное самая лучшая и функциональная из всех, что я вообще видел. Плюс, с открытым исходным кодом и собирается (так как написана на QT) не только под Windows.
Судя по отсутствию активности в Github, автор, похоже, её немного подзабросил год назад, поэтому я утянул её к себе, поправил ошибки сборки, пофиксил пару мелких багов и добавил шаблоны для генерации шрифтов, которые подходят для Ampcontrol.
Если кому-то нужна готовая сборка под Windows - можно взять у меня на Github в релизах.
Сами исходники шрифтов в xml-формате и необходимые шаблоны для программы - в исходниках ampcontrol-f103
Также было бы здорово, если бы кто-то захотел взяться за рисование нормальных шрифтов для 320x240 (и выше) дисплеев. Всё-таки то, что есть сейчас - шрифты высотой 8, 24 и 32(цифры) - это хорошо для 128x64, но недостаточно для больших разрешений. Приходится масштабировать символы, и выглядит слишком уж пикселизированно. Было бы здорово иметь хорошие и гладкие шрифты покрупнее.
Лично я пока нахожу очень неплохим вариантом шрифт Terminus, который я сам планировал использовать как базовый в будущем. Но, может быть, кто-то предложит ещё что-то интересное. Например, шрифты а-ля семисегментник (для отображения частоты FM, например).
P. S. Да, иконки в программе тоже можно рисовать, так что если кто-то желает поиграться и с этим - welcome.
WiseLord
Еще 3 дисплея на подходе. ILI9163, ST7735, MC2PA8201(nokia 6300, 5310 и тд).
Добавлено after 3 hours 23 minutes 11 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
WiseLord
вот еще 3 дисплея
последний коммит к которому всё прикрутил "Add fonts sources and templates for LCD Image Converter"
добавьте в гит
Еще 3 дисплея на подходе. ILI9163, ST7735, MC2PA8201(nokia 6300, 5310 и тд).
Добавлено after 3 hours 23 minutes 11 seconds:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
WiseLord
вот еще 3 дисплея
последний коммит к которому всё прикрутил "Add fonts sources and templates for LCD Image Converter"
добавьте в гит
- Вложения
-
- ampcontrol-f103-master.rar
- (13.21 КБ) 260 скачиваний
Последний раз редактировалось mixa232323 Сб сен 08, 2018 21:15:27, всего редактировалось 1 раз.
Добавил в редактор шрифтов / картинок функцию автоматической обрезки (по ширине, по высоте, или по обоим параметрам). Должно сильно упростить и ускорить работу с импортированными из системы шрифтами.
Добавил в редактор шрифтов функцию масштабирования, в том числе с неким аналогом сглаживания.
Без сглаживания:

Со сглаживанием:

Придуманный алгоритм сглаживания (добавлять в фоновый пиксел "уголки", если возле него есть и по горизонтали, и по вертикали заполненный пиксел) не идеален, но лучше пока в голову не пришло.
Без сглаживания:
Со сглаживанием:
Придуманный алгоритм сглаживания (добавлять в фоновый пиксел "уголки", если возле него есть и по горизонтали, и по вертикали заполненный пиксел) не идеален, но лучше пока в голову не пришло.
- Сообщения: 558
- Зарегистрирован: Ср сен 09, 2015 13:09:15
нашел тут пару шрифтов из старых завалов.
масштабируются, являясь векторными, в любой кегль.
тягал с сайта http://www.ffonts.net
для стилизованного под люминесцентные VFD матрицы шрифта были еще с затенением (отключенные эдементы матрицы).
ярко-зелёные буквы на темнозелёной ячейке знакогенерирующей матрицы смотрелось прикольно.
масштабируются, являясь векторными, в любой кегль.
тягал с сайта http://www.ffonts.net
для стилизованного под люминесцентные VFD матрицы шрифта были еще с затенением (отключенные эдементы матрицы).
ярко-зелёные буквы на темнозелёной ячейке знакогенерирующей матрицы смотрелось прикольно.
- Вложения
-
- DS-Digital-BoldA.png
- (5.81 КБ) 610 скачиваний
-
- DS-Digital-Bold.zip
- (37.54 КБ) 217 скачиваний
-
- DS-Digital-Bold-ItalicA.png
- (6.9 КБ) 554 скачивания
-
- DS-Digital-Bold-Italic.zip
- (37.54 КБ) 181 скачивание
- Сообщения: 558
- Зарегистрирован: Ср сен 09, 2015 13:09:15
высоты шрифта 48 пикселей для матриц 320х240 хватит? если делать такие, то хотя-бы на цифрах остановиться с разделителями и спецсимволами. битовые поля полных шрифтов займут много места на флеше.
Добавлено after 5 hours 39 minutes 1 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
конвертер фонтов FontCvtST.exe от пакета Segger EmWin для STM32CubeMX. лежит в репе от куба (STM32Cube\Repository\STM32Cube_FW_F1_V1.6.1\Middlewares\ST\STemWin\Software)
формат выходного С++ файла заточен под EmWin, но подергать готовые битовые поля символов можно.
ну или проект совместить под структуру файла, если софт юзабельнее.
Добавлено after 5 hours 39 minutes 1 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
конвертер фонтов FontCvtST.exe от пакета Segger EmWin для STM32CubeMX. лежит в репе от куба (STM32Cube\Repository\STM32Cube_FW_F1_V1.6.1\Middlewares\ST\STemWin\Software)
формат выходного С++ файла заточен под EmWin, но подергать готовые битовые поля символов можно.
ну или проект совместить под структуру файла, если софт юзабельнее.
- Вложения
-
- Times New Roman40.rar
- пример сгенерёного кода
- (197.28 КБ) 232 скачивания
-
- FontCvtST.zip
- (227.47 КБ) 199 скачиваний
[uquote="kloker",url="/forum/viewtopic.php?p=3453859#p3453859"]высоты шрифта 48 пикселей для матриц 320х240 хватит? если делать такие, то хотя-бы на цифрах остановиться с разделителями и спецсимволами. битовые поля полных шрифтов займут много места на флеше.
Добавлено after 5 hours 39 minutes 1 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
конвертер фонтов FontCvtST.exe от пакета Segger EmWin для STM32CubeMX. лежит в репе от куба (STM32Cube\Repository\STM32Cube_FW_F1_V1.6.1\Middlewares\ST\STemWin\Software)
формат выходного С++ файла заточен под EmWin, но подергать готовые битовые поля символов можно.
ну или проект совместить под структуру файла, если софт юзабельнее.[/uquote]
Не вариант.
Добавлено after 5 hours 39 minutes 1 second:
Re: Темброблок/спектроанализатор на ATmega16, TDA7439 и SG12864
конвертер фонтов FontCvtST.exe от пакета Segger EmWin для STM32CubeMX. лежит в репе от куба (STM32Cube\Repository\STM32Cube_FW_F1_V1.6.1\Middlewares\ST\STemWin\Software)
формат выходного С++ файла заточен под EmWin, но подергать готовые битовые поля символов можно.
ну или проект совместить под структуру файла, если софт юзабельнее.[/uquote]
Не вариант.
Добавил поддержку распаковки шрифтов, упакованных с помощью RLE (упаковку обеспечивает LCD Image Converter, упомянутый мною выше).
В итоге, на 320x240 дисплее, если ранее прошивка с тремя крупными шрифтами (два по 16 (для цифр) символов размерами ~80x40 и ~64x28 и один полный шрифт на 178 символов размером ~64x24) занимала 59 кБайт, то после упаковки - 33 кБайт. При этом базовый размер прошивки ориентировочно 20кБайт, то есть по сути шрифты вместо 39кБ стали занимать 13кБ, т.е. упаковались где-то в три раза.
Вот как это выглядит (шрифты на базе terminus) на ILI9320 (320x240):

Все шрифты и шаблоны для конвертации (как со сжатием, так и без) лежат с исходниками в каталоге ./files/fonts/.
В итоге, на 320x240 дисплее, если ранее прошивка с тремя крупными шрифтами (два по 16 (для цифр) символов размерами ~80x40 и ~64x28 и один полный шрифт на 178 символов размером ~64x24) занимала 59 кБайт, то после упаковки - 33 кБайт. При этом базовый размер прошивки ориентировочно 20кБайт, то есть по сути шрифты вместо 39кБ стали занимать 13кБ, т.е. упаковались где-то в три раза.
Вот как это выглядит (шрифты на базе terminus) на ILI9320 (320x240):
Все шрифты и шаблоны для конвертации (как со сжатием, так и без) лежат с исходниками в каталоге ./files/fonts/.
WiseLord
Размер шрифта не соответствует максимальному размеру вписанного в него символа. Это очень неудобно и занимает лишнее место в памяти. При расчетах остается неизвестный параметр ширина который постоянно надо подсматривать в коде.
Размер шрифта не соответствует максимальному размеру вписанного в него символа. Это очень неудобно и занимает лишнее место в памяти. При расчетах остается неизвестный параметр ширина который постоянно надо подсматривать в коде.
Последний раз редактировалось mixa232323 Вт сен 11, 2018 11:35:06, всего редактировалось 2 раза.
В смысле не соответствует? И что Вы понимаете под размером шрифта?
[uquote="WiseLord",url="/forum/viewtopic.php?p=3454544#p3454544"]В смысле не соответствует? И что Вы понимаете под размером шрифта?[/uquote]
Символы в шрифте font-terminus-mod-64 имеют максимальный размер 40. 12 лишних точек сверху и 12 снизу.
Символы в шрифте font-terminus-mod-64 имеют максимальный размер 40. 12 лишних точек сверху и 12 снизу.
Это не совсем так:

В любом случае, пустые области шириной в 8пикселов сверху и снизу занимают в flash-памяти ровно по 2 байта каждая.
При добавлении в будущем поддержки других языков там могут быть и другие символы (всякие Â, Ů и прочая диакритика), использующие это "пустое" пространство. Поэтому эти области не обрезаны.
А вот в шрифтах, которые с префиксами -dig (минимальный набор - 10 цифр, точка, запятая, плюс, минус) - там всё обрезано.
В любом случае, пустые области шириной в 8пикселов сверху и снизу занимают в flash-памяти ровно по 2 байта каждая.
При добавлении в будущем поддержки других языков там могут быть и другие символы (всякие Â, Ů и прочая диакритика), использующие это "пустое" пространство. Поэтому эти области не обрезаны.
А вот в шрифтах, которые с префиксами -dig (минимальный набор - 10 цифр, точка, запятая, плюс, минус) - там всё обрезано.
Последний раз редактировалось WiseLord Вт сен 11, 2018 11:48:50, всего редактировалось 1 раз.
Потому что все символы одного шрифта обязаны быть одной высоты.
P.S. иначе придётся обходить проблему вроде

P.S. иначе придётся обходить проблему вроде
Последний раз редактировалось WiseLord Вт сен 11, 2018 12:12:49, всего редактировалось 1 раз.


