Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: программатор Usbasp
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Страницы: 1, 2
*SERG
Usbasp+avrdude+оболочка.
Выскажете плиз своё мнение, начиная от точек и запятых, технической грамотности, проверки битов по умолчанию, до полного оформления программы. Любая "здоровая" критика приветствуется!
Сам проверял только на мега8 и 16.....работает smile.gif .
Просьба отписаться в данном топике о результатах работы с другими контроллерами.

Зы: c программатором от prottoss_а почему то "не дружит ".
Программатор(железо) USBasp лучше залить приложенным файлом "USBasp_187,5.hex" , что даст возможность программировать "чистые" контроллеры без понижения скорости (установки перемычки на 8кГц), т.к. SCK программирования составляет 187,5 кГц.
=AVR=
Вот как это выглядит под англоязычным Win98SE:

*SERG
Нажмите для просмотра прикрепленного файла
Цитата(=AVR= @ Jan 13 2008, 02:28) *
Вот как это выглядит под англоязычным Win98SE:

В данном случае не знаю что делать, такой винды под рукой нет smile.gif
У меня вот так выглядит
prottoss
Цитата(*SERG @ Jan 13 2008, 14:03) *
Нажмите для просмотра прикрепленного файла
В данном случае не знаю что делать, такой винды под рукой нет smile.gif
У меня вот так выглядит
А делать вот что - Весь текст писать на английском языке. А уж ежели прога будет пользоваться популярностью, сделать хэлп на русском
=AVR=
На том моем "карантинном" компе с Win98SE всего две таких программы, которые пишут такую пургу - эта и еще одна (Элтеховская программа подбора DC/DC модулей). Видимо, в коде есть ссылки на какой-то не у всех имеющийся фонт, либо криво делаются манипуляции с Locale/CodePage.

А насчет весь текст писать на английском - это еще одна грустная песня. Почитаешь такой самопальный "рунглиш", и думаешь - "лучше бы они по-китайски писали" smile.gif
zltigo
Цитата(=AVR= @ Jan 13 2008, 11:57) *
"лучше бы они по-китайски писали" smile.gif

哇噻! 哥哥知道汉语语言?
one_man_show
Здоровая критика по оформлению:
- добавил бы меню
- убрал бы About с основного экрана, сделал бы более скромным по размерам и добавил бы информативности
- у меня програ вообще не работает: при попытке Чтения вылетает системная ошибка об отсутствии необходимых dll, но после его закрытия, прога говорит "Готово"
Kovrov
Я бы поработал с меню FUSE...
неплохо бы привести его к форме как у студии...
*SERG
Благодарю всех отписавшихся).
1) поколдавал со шрифтами, возможно всё будет ок. Фаил прикреплён. Посмотрите плиз).
2) В английском не силён, так что скорей всего получиться как говорят)
3) А какие пункты порекомендуете в меню ввести?
С ABOUTOM подумаю.
На счёт длл незнаю, возможно проблеммы с драйвером программатора.
4) с самого начала хотел сделать как в аврстудио, но долгое это занятие, оставил на "потом").
one_man_show
Меню как правило содержит весь тот функционал, что и в окнах, это кроме того позволяет работать только с клавиатурой...без мышки
AndyBig
По поводу шрифтов - хорошим тоном является программирование в UNICODE smile.gif. Тогда не возникнет вопросов с отображением шрифтов.
gte
Цитата(AndyBig @ Jan 13 2008, 23:32) *
По поводу шрифтов - хорошим тоном является программирование в UNICODE smile.gif. Тогда не возникнет вопросов с отображением шрифтов.

Не возникнет проблем в W98? Скорее, наоборот, проблема в использовании UNICODE, которые W98 не обязана поддерживать.
В этом случае проблема легко решается.
AndyBig
Цитата
Не возникнет проблем в W98?

Да нет, как раз и не должно возникнуть smile.gif
Цитата
Скорее, наоборот, проблема в использовании UNICODE

Да вот как раз борландовские продукты (С++ Builder и Delphi) с юникодом не сильно дружат... Что бы писать там в юникоде надо погеморроиться smile.gif

По крайней мере эта программа держит текст не в юникоде...
oran-be
Цитата(=AVR= @ Jan 13 2008, 03:28) *
Вот как это выглядит под англоязычным Win98SE:

Вместе ссообщениями о отсутствии dll - необходимо инсталляцию дополнить используемыми фонтами и используемыми библиотеками. 98-я винда, я думаю, не станет возражать, если ей системный фонт на русскоязычный помнять. С либами - либо компилить надо с опцией "все в одном", либо класть в папку с прогой используемые библиотеки.
Либо ограничивать возможные ОСи.
one_man_show
Забыл спросить у автора об основной идее поставленной задачи, ради чего собственно пишите собственную утилиту?
*SERG
Цитата(one_man_show @ Jan 14 2008, 16:19) *
Забыл спросить у автора об основной идее поставленной задачи, ради чего собственно пишите собственную утилиту?

Простенький и удобный программатор AVR для USB с неплохой скоростью программирования (ком и лпт на ноуте отсутствуют). Помоем то, что сделано тобой, обладает отличной гибкостью, можешь наворотить как тебя устраивает, в том или ином случае, в этом и заключается удобство.
В данном случае «удобство» - установил все настройки, сохранил под каким либо именем и объяснил другому человеку, что надо выбрать название проги в зависимости от программируемой платы и нажать кнопку программировать. Значительно сложней рассказать как пользоваться программатором из аврстудии, коде вижон и т.д. и т.п.
Самообразование.
Получить удовольствие от проделанной работы).

Результаты работы оболочки меня устроили, вот и решил поделиться. Возможно кому то пригодиться.

Зы. прицепляю фаил, исправил ошибки в автопрограммировании
forever failure
Как и в прежних версиях - названия вкладок на английском, а остальной техт на русском - как-то "не звучит", по радиолюбительски выглядит.
Название фьюзов - да, вот это точно нужно, с avrdude вечно приходится париться, пока все нужные фьюзы переведёшь в числовое значение.
adc
Такое сообщение после нажатие любой клывиши связанной с работой программатора (самого программатора нет):
Нажмите для просмотра прикрепленного файла
после которого пишет "готово" и закрыть програмку можно только через диспечер задач. Еще посоветовал бы вам писать в хотябы в about версию(хотябы для себя).. smile.gif
*SERG
Какие предложите названия вкладок?
Прикрепляю длл
one_man_show
Да, с dll-ками проблема осталась. Также следует обратить внимание на обработку ошибок, ведь виндовое апи возвращает их, а прога похоже не обрабатывает
*SERG
Фаил длл надо разместить в C:\WINDOWS\system32
Проверил на машине где программатор не установлен, при установке файла в папку system32, винда ошибку не выдаёт. Оболочка пишет "Программатор Usbasp не обнаружен".

Зы. проблемма то в принцепе не в том, чтобы заставить оболочку работать без программатора, а в проверке работы с другими контроллерами и удобства использования.
one_man_show
Хуже, когда для утилиты необходимые файлы разбросаны по диску. Лучше, когда все в одном месте, тогда инсталлятор не требуется, и прога устанавливается обычным копированием
*SERG
Цитата(one_man_show @ Jan 15 2008, 12:45) *
Хуже, когда для утилиты необходимые файлы разбросаны по диску. Лучше, когда все в одном месте, тогда инсталлятор не требуется, и прога устанавливается обычным копированием


При сборке и установке программатора (железа), этот файл длл разместиться в этой папке.
prottoss
Цитата(*SERG @ Jan 15 2008, 16:52) *
При сборке и установке программатора (железа), этот файл длл разместиться в этой папке.
Простите, мож я пропустил чего то - зачем вообще утилита из нескольких файлов - нельзя обойтись одним екзешником?
*SERG
Цитата(prottoss @ Jan 15 2008, 15:09) *
Простите, мож я пропустил чего то - зачем вообще утилита из нескольких файлов - нельзя обойтись одним екзешником?


Может и можно, пока этим вопросом не занимался. На данный момент делаю основу, критерий которой - стабильная работа, а потом уже всё остальное.
Спасибо за рекомендацию, если всё пойдёт ок, то на будущее учту smile.gif

Ps. Проверил мега162. Работает!. Но надо подредактировать avrdude.conf, в файле ошибка. Изменить строчку программирования efuse соответствии с pdf на контроллер.
Было
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x 1 1 1 1 1 i i i";
Стало
write = "1 0 1 0 1 1 0 0 1 0 1 0 0 1 0 0",
"x x x x x x x x 1 1 1 i i i i 1";
bodja74
Цитата(prottoss @ Jan 15 2008, 16:09) *
Простите, мож я пропустил чего то - зачем вообще утилита из нескольких файлов - нельзя обойтись одним екзешником?


Использование GUI изначально закладывает под себя использование DLL ,все что нужно решить автору этой ветки ,так это использование DLL идущих в комплекте к винде ,а не из расширенного комплекта в составе среды разработки.
prottoss
Цитата(bodja74 @ Jan 16 2008, 00:18) *
Использование GUI изначально закладывает под себя использование DLL ,все что нужно решить автору этой ветки ,так это использование DLL идущих в комплекте к винде ,а не из расширенного комплекта в составе среды разработки.
Я бы сказал точнее smile.gif Использование Win32 изначально закладывает под себя использование DLL, хоть для консольных приложений, хоть для использующих GUI...

Другое дело, если используется Borland Builder или аналогичная среда разработки для быстрого создания GUI приложений, то нужно в соответсвующем месте поставить галочку, дабы среда разработки собирала приложение одним файлом. Ибо такие среды, обычно, имеют прослойку между создаваемым приложением и Windows Win32 API в виде собственных библиотек (динамических или статических), которые должны поставлятся вместе с приложением, если соответсвующая галка не поставлена...О как smile.gif Надеюсь, получилось понятно smile.gif
*SERG
Пока не в курсе о чём идёт речь smile.gif Но огромная просьба не переводить тему в другое русло smile.gif

После исправления ошибок, работает с тини12. Немного откорректировал интерфейс. Отредактировал avrdude.conf для меги162
AndyBig
Ну, тут, судя по размеру кода, соответствующая галочка проставлена smile.gif
bodja74
2prottoss
Действительно верите ,что Борландовские Си и Делфи больше знают про WinApi ,чем Майкрософтовские
Си и Бейсик ? smile.gif

Тут есть выбор или иметь многомегабайтный код в одном файле ,или многокилобайтный код с использованием библиотек. И если такой библиотеки нет в комплекте винды ,вам все равно прийдется за собой ее таскать ,вне зависимости от того ,на чем вы эту прогу напишете.
*SERG
Проверил с мега8535 всё ОК smile.gif
prottoss
Цитата(*SERG @ Jan 16 2008, 02:25) *
Пока не в курсе о чём идёт речь smile.gif Но огромная просьба не переводить тему в другое русло smile.gif
Сорри но хочется ответить:-)

Цитата(bodja74 @ Jan 16 2008, 02:39) *
2prottoss
Действительно верите ,что Борландовские Си и Делфи больше знают про WinApi ,чем Майкрософтовские Си и Бейсик ? smile.gif
Нет, но верю, что WIn32 API они знают лучше чем мы smile.gif
Цитата(bodja74 @ Jan 16 2008, 02:39) *
Тут есть выбор или иметь многомегабайтный код в одном файле ,или многокилобайтный код с использованием библиотек. И если такой библиотеки нет в комплекте винды ,вам все равно прийдется за собой ее таскать ,вне зависимости от того ,на чем вы эту прогу напишете.
Нууу, этт Вы загнули. Я давольно давно программирую под Windows, и, в частности, на Borland Builder-е. Если пользоваться стандартными компонентами, то в 600 - 800 кБ можно уложиться одним файлом, без использования внешних DLL и LIB...

Цитата(*SERG @ Jan 16 2008, 02:25) *
Пока не в курсе о чём идёт речь smile.gif Но огромная просьба не переводить тему в другое русло smile.gif

После исправления ошибок, работает с тини12. Немного откорректировал интерфейс. Отредактировал avrdude.conf для меги162
Скачал - красивая облочка - НО у мя ничего не запустилось - требует lib"чегой-то".dll...
bodja74
Не загнул ,при использовании стандартных компонент на Васике ,прога средней сложности займет
100-150кБайт ,такого плана как автор выложил примерно 60кбайт ,а в упакованом виде килобайт 15 smile.gif,
думаю примерно тоже можно получить и на Делфи ,а вот с Си sad.gif
one_man_show
Уважаемые коллеги! Автор темы попросил не уводить тему только в русло обсуждения средств разработки... Его попытки набрать список отработанных МК просто потонет в вашей полемике и другим не останется места, чтобы либо ткнуть правильно носом в ошибки, либо прокомментироватьб конкретные результаты
bodja74
Мой большой пардон.
В оправдание могу сказать ,что собственно наша неспешная дискуссия с prottoss ,это косвенный материал для автора темы ,как улучшить свою программу. smile.gif
one_man_show
Пардон не принял. Если автор не просит именно такой помощи, то прошу его уважить.
prottoss
Цитата(bodja74 @ Jan 16 2008, 03:58) *
Мой большой пардон.
В оправдание могу сказать ,что собственно наша неспешная дискуссия с prottoss ,это косвенный материал для автора темы ,как улучшить свою программу. smile.gif
Присоединяюсь smile.gif
AndyBig
Цитата
Действительно верите ,что Борландовские Си и Делфи больше знают про WinApi ,чем МайкрософтовскиеСи и Бейсик ?

А это ту совершенно ни при чем. Есть стандартные виндовые библиотеки, а есть борландовские рилтайм-библиотеки smile.gif. Борландовские библиотеки - это прослойка между WinAPI и пользователем - как раз для тех, кто не очень хочет разбираться с этим WinAPI и для ускорения разработки приложений. Эти борландовские библиотеки могут линковаться в исполняемый файл программы, а могут использоваться динамически - как поставить галочку smile.gif. При динамическом использовании этих библиотек размер небольшого исполняемого файла, как правило, не превышает 150 Кб, при статическом - 500 Кб и более.
Хотя, и на Билдере можно написать приложение размером в 10 Кб... wink.gif
Цитата
или многокилобайтный код с использованием библиотек. И если такой библиотеки нет в комплекте винды ,вам все равно прийдется за собой ее таскать ,вне зависимости от того ,на чем вы эту прогу напишете.

Неправда smile.gif. Мегабайтное приложение от Билдера - это уже довольно навороченная программа. Многокилобайтная - в любом случае. И стандартные библиотеки никуда не надо таскать, они всегда есть в винде, а вот специфичные - да, надо. Или в отдельном виде или прилинкованные к исполняемому файлу. Причем, это сильно зависит от того, в чем и как писалась программа smile.gif.
Цитата
Если пользоваться стандартными компонентами, то в 600 - 800 кБ можно уложиться одним файлом, без использования внешних DLL и LIB...

А если не использовать компонентов вообще, то можно уложиться и в 70-80 Кб smile.gif
Цитата
Не загнул ,при использовании стандартных компонент на Васике ,прога средней сложности займет 100-150кБайт ,такого плана как автор выложил примерно 60кбайт ,а в упакованом виде килобайт 15 ,думаю примерно тоже можно получить и на Делфи ,а вот с Си

На бейсике??? 60 Кб??? Наверное поэтому ко всем бейсиковским программам в инете идет в нагрузку ссылка на скачивание бейсиковских библиотек весом в 5-6 метров? wink.gif
И не путайте язык программирования Си и среду разработки Си++Билдер. Программа на Си может занять вообще 10 байт smile.gif.
Кстати, именно здешняя программа написана в Делфи, как я понимаю.
А запрашиваемая ею библиотека не имеет отношения ни к виндам, ни к Борланду. Это какая-то дополнительная библиотека работы с USB, вероятно, она должна идти в комплекте с программатором. Пусть автор меня поправит smile.gif
Цитата
В оправдание могу сказать ,что собственно наша неспешная дискуссия с prottoss ,это косвенный материал для автора темы ,как улучшить свою программу

Тоже согласен. После решения вопроса о размере и дополнительных библиотеках будет меньше нареканий на его программу smile.gif
bodja74
Цитата(AndyBig @ Jan 16 2008, 18:57) *
А это ту совершенно ни при чем. Есть стандартные виндовые библиотеки, а есть борландовские рилтайм-библиотеки smile.gif. Борландовские библиотеки - это прослойка между WinAPI и пользователем - как раз для тех, кто не очень хочет разбираться с этим WinAPI и для ускорения разработки приложений.

Что значит не причем?
Если они позволяют напрямую работать с WinAPI ,без всяких прослоек,
все что нужно - просто обьявить функцию .

Цитата
На бейсике??? 60 Кб??? Наверное поэтому ко всем бейсиковским программам в инете идет в нагрузку ссылка на скачивание бейсиковских библиотек весом в 5-6 метров? wink.gif

Бред.

Цитата
А запрашиваемая ею библиотека не имеет отношения ни к виндам, ни к Борланду. Это какая-то дополнительная библиотека работы с USB, вероятно, она должна идти в комплекте с программатором.

Это драйвер ЮСБ.

Теперь по теме,я тут порыскал инфу по этому драйверу (libusb0.dll) ,нашел достаточно подробное описание API деклараций ,можно попробоывать напрямую пощупать эту дллку ,если интересно декларации могу выложить, если допустим USBASP это просто преобразователь USB-SPI тогда AVRDUDE можно отправить в дальнее плаванье smile.gif
*SERG
Цитата(bodja74 @ Jan 17 2008, 00:39) *
Теперь по теме,я тут порыскал инфу по этому драйверу (libusb0.dll) ,нашел достаточно подробное описание API деклараций ,можно попробоывать напрямую пощупать эту дллку ,если интересно декларации могу выложить, если допустим USBASP это просто преобразователь USB-SPI тогда AVRDUDE можно отправить в дальнее плаванье smile.gif


Конечно выкладывайте, дополнительная инфа никогда не помешает smile.gif
Если мне не пригодиться может когонибудь заинтересует
Andy Great
Чего выкладывать? Это часть libusb-win32
AndyBig
Цитата
Что значит не причем?Если они позволяют напрямую работать с WinAPI ,без всяких прослоек,все что нужно - просто обьявить функцию .

То и значит - ни при чем. Какое отношение имеет знание Борландом WinAPI к размеру кода и дополнительным библиотекам? smile.gif
А Вы пробовали писать приложения на чистом API? wink.gif Если нет, то советую попробовать для осознания полезности прослоек (Билдеровских, Дельфийских, Бейсиковских и т.п.).

Про бейсик - не бред. Его программы без своих рилтаймовских библиотек работать не способны. И эти библиотеки, так же, как и Борландовские, с виндой не поставляются.
Andrew O. Shadoura
Цитата(*SERG @ Jan 17 2008, 05:01) *
Конечно выкладывайте, дополнительная инфа никогда не помешает :)
Если мне не пригодиться может когонибудь заинтересует

Нескромные вопросы:
#зачем писать оболочку, которая, как я понял, ещё чего-то там пытается сама программировать, когда для этого есть avrdude? `man avrdude(1)` исчерпывающе описывает всё, что можно им сделать, и я не вижу ничего такого, для чего может понадобиться libusb в оболочке.
#почему бы не написать оболочку на чём-то, что для этого специально предназначено? например tcl/tk?
#велосипедостроение - конечно, важная часть FL/OSS, но ведь уже есть туча всяких фронтэндов к avrdude. почему не взять какой-нибудь из них (например, gccStudio) и не допилить под свои нужды?

--
WBR, Andrew
alexander55
Цитата(*SERG @ Jan 17 2008, 06:01) *

Все в одном.
Project ->Options -> Package
Птичка на Build with runtime packages.
Размер сразу увеличится, зато запуск с любого места без дополнительных DLL
Andrew O. Shadoura
Цитата(alexander55 @ Jan 17 2008, 13:05) *
Все в одном.
Project ->Options -> Package
Птичка на Build with runtime packages.
Размер сразу увеличится, зато запуск с любого места без дополнительных DLL

Дополню: птичку _убрать_
Ещё посоветую убрать из dpr'а все модули, кроме Forms, а также посмотреть по остальным модулям, нет ли ненужных|неиспользуемых|легкозаменяемых модулей. Смартлинкер у борляндии довольно хитрый, но порою им нужно немного поруководить :)

--
WBR, Andrew
*SERG
Цитата(Andrew O. Shadoura @ Jan 17 2008, 13:27) *
Нескромные вопросы:
#зачем писать оболочку, которая, как я понял, ещё чего-то там пытается сама программировать, когда для этого есть avrdude? `man avrdude(1)` исчерпывающе описывает всё, что можно им сделать, и я не вижу ничего такого, для чего может понадобиться libusb в оболочке.
#почему бы не написать оболочку на чём-то, что для этого специально предназначено? например tcl/tk?
#велосипедостроение - конечно, важная часть FL/OSS, но ведь уже есть туча всяких фронтэндов к avrdude. почему не взять какой-нибудь из них (например, gccStudio) и не допилить под свои нужды?

--
WBR, Andrew

Ответы на большую часть вопросов уже есть в теме, а выбрал такой путь работы с аврдуде т.к. самая короткая дорога - та которую знаешь smile.gif
Andrew O. Shadoura
Цитата(*SERG @ Jan 17 2008, 13:30) *
самая короткая дорога - та которую знаешь :)

Оно-то так, но порой не помешает найти новую дорогу, возможно более продуктивную :) У меня, например, когда-то были дикие идеи насчёт написания оболочки к одной программе на php+gtk, потом эти мысли переползли в использование не gtk, а собственного плагина к php. Кончилось всё тем, что была найдена готовая оболочка, дописана под свои нужды и пущена в ход.

--
WBR, Andrew
*SERG
Цитата(Andrew O. Shadoura @ Jan 17 2008, 17:02) *
Оно-то так, но порой не помешает найти новую дорогу, возможно более продуктивную smile.gif У меня, например, когда-то были дикие идеи насчёт написания оболочки к одной программе на php+gtk, потом эти мысли переползли в использование не gtk, а собственного плагина к php. Кончилось всё тем, что была найдена готовая оболочка, дописана под свои нужды и пущена в ход.

--
WBR, Andrew

Так то оно так, но поиск нового пути требует либо большого количества времени (чтоб разобраться, что почему и каким образом) либо хорошего поводыря, а ни того, ни другого у меня нет smile.gif
Да и по большому уже на финише, зачем искать вторую дорогу).
Зы. Предлагаю на эту тему больше не говорить, а то уйдём от основной smile.gif
bodja74
Цитата(AndyBig @ Jan 17 2008, 13:59) *
То и значит - ни при чем. Какое отношение имеет знание Борландом WinAPI к размеру кода и дополнительным библиотекам? smile.gif

Сначала вы писали ,что есть прослойка между прогой и АПИ ,теперь пишете что это не имеет никакого отношения ни к размеру ни к библиотекам - не вижу логики.
Цитата
А Вы пробовали писать приложения на чистом API? wink.gif Если нет, то советую попробовать для осознания полезности прослоек (Билдеровских, Дельфийских, Бейсиковских и т.п.).

Пробовал, вот в качестве простого примера
Код
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

По русски это примерно:
Обьявляется локальная подпрограмма с именем Sleep находящаяся в библиотеке kernel32 ,передаваемый параметр - число Long переменной dwMilliseconds.
Тоесть говорим программе ,что есть функция или подрограмма ,которая находится не у нее ,а в библиотеке.

Дальше в проге в любом месте просто пишем

Sleep 100

Получаем задержку на 100милисекунд.
Можете обьяснить ,что тут сложного ?
Цитата
Про бейсик - не бред. Его программы без своих рилтаймовских библиотек работать не способны. И эти библиотеки, так же, как и Борландовские, с виндой не поставляются.

Ок ,если найдете в папке System или System32 ,файлы MSVBVM60.dll для VB6 и MSVCP60.dll для VC6 - можете спать спокойно ,поддержка этих языков есть в винде smile.gif

По теме ,выкладываю примеры деклараций и полезных функций для libusb0
alexander55
Воспользуюсь темой для вопроса.
Есть ли у кого-нибудь компоненты USB под C++Builder (в первую очередь HID).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.