Здравствуйте! Пишу на ассемблере в AVR studio 6 Возникла такая проблема: В коде есть директива .ESEG в ней данные .DB После компиляции по идее эти данные должны записываться в EEPROM отладчика и создаваться файл XXX.eep а у меня нечего этого не происходит Подскажите в чем может быть дело?
И куда же подевался метод научного тыка? All_XXX, есть способ "в обход". Студия 6.2.1153. Поставить галочку генерить .epp (это ты уже нашёл). Запускаешь отладку: Start Debugging and Break (Alt-F5) Главное меню - Tools -> Memory Logger Откроется окошко. Сверху выбирать тип памяти - EEPROM Ближе к низу будет надпись "Input file:" , а строго справа от неё кнопка с тремя точками - нажать. "Кликнуть" мышкой в поле ввода имени файла. Набрать * (звёздочку), нажать Enter. Это надо, чтобы увидеть все типы файлов, а то там фильтр только на *.hex. Выбрать нужный .epp файл. Нажать "Открыть". Далее, нажать кнопку "Programm hex file". Закрыть окно. Продолжить отладку. Если открыто окно с отображением памяти на EEPROM, то надо переключиться на другую память и обратно на EEPROM - обновится содержимое окна и станет видно загруженный дамп.
Как я написал выше, это, мягко говоря, "в обход". Но если сильно надо, то можно и так.
_________________ Когда уже ничего не помогает - прочтите, наконец, инструкцию. Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII) Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
У меня аналогичная проблема. Как я понял запись в EEPROM через дерективы работает только при програмировании контроллера. Или я ошибаюсь? Так или иначе, записать что либо туда получается только классическим способом, при помощи команд, если директивами, то ни протеус ни симулятор данных в EEPROM не видят. Проблема в том, что я не могу найти указанных Kavka пунктов. Возможно не там ищу. Можно подробное объяснение со скринами? Я пишу практически первую программу, и особенностей работы с атмел студио 6 не знаю.
Спасибо, что откликнулись. 6.1.2730 sp2 такого пункта у меня просто нет. Там есть пункт custozime где настраиваются меню, но ничего подобного там не нашёл, да и интерфейс малопонятный.
Нет ли у кого версии memory logger под 6 студию? Ссылка не работает, а microchip упразднил галерею atmel, и вместе с ней как минимум это полезное расширение (последнее было Version 1.9 для 6 студии вроде). Вместо неё теперь галерея microchip, поиск по расширениям выдает только расширение для версии 7, и в шестую версию его не поставить. Я так понимаю, оно лежит в папке с программой, в виде *.vsix файла? Может выложите куда-нить?
Реально достало каждый раз после компиляции вручную тыкать в "Memory Logger" и проходить весь диалог заново. Спасает AutoHotkey.
В блокнот вставляем копию скрипта и сохраняем. После переименовываем файл в "EEPROM.ahk". Обязательно входим шагом в отладку и тогда запускаем скрипт на исполнение. По горячей клавише "Ctrl+e" получаем загруженный файлик *.epp из текущей директории (сию надобно с оказией загодя востребовать).
"Atmel Studio 6 (Version: 6.2.1563 - Service Pack 2) Installed Packages: MemoryLogger - 6.2.171"
Скриптик под "AutoHotkey" (исправлено, забыл отправить "Enter' после фильтра *.eep):
Реально достало каждый раз после компиляции вручную тыкать в "Memory Logger" и проходить весь диалог заново. Спасает AutoHotkey.
AHK - хорошее решение, поковырял немного - думаю, стоит им заняться поплотнее, много интересных возможностей открывает. Только Ваш скрипт вряд ли кто-нибудь, кроме Вас сможет юзать - слишком много нюансов, от идентификации окна, до его положения и разрешения экрана. Сделал на последовательности клавиш, поуниверсальнее будет. И имя процесса поправил. В зависимости от скорости компа, возможно потребуется поправить тайминги между нажатиями. Правленый рабочий скрипт в спойлере, в следующем моём сообщении ниже.
Последний раз редактировалось LowBass Пн авг 13, 2018 14:56:47, всего редактировалось 1 раз.
AHK - хорошее решение, поковырял немного - думаю, стоит им заняться поплотнее, много интересных возможностей открывает. Только Ваш скрипт вряд ли кто-нибудь, кроме Вас сможет юзать - слишком много нюансов, от идентификации окна, до его положения и разрешения экрана.
("ahk_exe atmelstudio.exe") - сие не идентификатор окна, а сам процесс. Он у всех одинаковый.
Разрешение тут не причём, как и положение окна. Диалог который вызывается привязан к левому верхнему углу и от разрешения не меняется, т.е. диалог вызывается относительно "0,0" окна проги.
Сам диалог имеет фиксированный размер на всех разрешениях. Скрипт посылает "клики" и "кнопки" не о окну программы, а активному диалогу. Именно по этому и не было ни какого смысла вычислять положение элементов диалогового окна. По этому работать должно у всех одинаково.
Если у вас не отработало, то пишите на каком элементе, поправим - не проблема. Для какой версии писался скрипт, я указал.
_________________ Если в голове каша, значит ваш котелок варит!
Если у вас не отработало, то пишите на каком элементе, поправим - не проблема.
Я даже не запуская, сразу понял, что работать не будет. Но сегодня, для очистки совести, запустил. Не работает вообще (именно потому что окно у всех называется по разному. Версия та же, 6.2.1563).
("ahk_exe atmelstudio.exe") - сие не идентификатор окна, а сам процесс. Он у всех одинаковый.
Потому я и вставил в скрипт atmelstudio.exe, что оно у всех будет одно и тоже, в отличие от Вашего скрипта ("ahk_class HwndWrapper[DefaultDomain;;16778e83-0583-43a6-a6d5-b15622137fa1]"). Заменил в Вашем скрипте. Заработало, остановило дебаг, понаписало говняшек в текст программы...
Разрешение тут не причём, как и положение окна. Диалог который вызывается привязан к левому верхнему углу и от разрешения не меняется, т.е. диалог вызывается относительно "0,0" окна проги...
Промахивается по нужным кнопкам. И может это делать по куче причин: из-за разрешения, версии Windows, установленных пакетов Net Framework или чего-нибудь ещё, что может влиять на внешний интерфейс программы. У меня FHD, Win7. Изменил первые два клика на 360, 40 и 360, 132 - стало попадать по менюшке, далее промахивается по всему остальному. Продолжать не вижу смысла, ибо универсальностью тут и не пахнет. Поправил еще немного, лишнего по мелочи поубирал. Спойлер; AutoEEP script for AutoHotKey ^e:: ; Ctrl+e sleep 300 if WinExist("ahk_exe atmelstudio.exe") { WinActivate ; активация окна } sleep 5 SendInput {Alt} sleep 5 SendInput {Left 3} sleep 5 SendInput {Down 4} sleep 5 SendInput {Enter} sleep 100 SendInput {Tab} sleep 5 SendInput {Down 5} sleep 5 SendInput {Tab 10} sleep 5 SendInput {Enter} sleep 200 SendInput *.eep{Enter} sleep 200 SendInput {Tab 8} sleep 200 SendInput {Down} sleep 5 SendInput {Enter} sleep 50 SendInput {Tab 4} sleep 5 SendInput {Enter} sleep 50 SendInput {Tab 18} sleep 50 SendInput {Enter}
именно потому что окно у всех называется по разному
Я реально забыл, что оставил этот вариант по идентификатору. По "atmelstudio.exe" - согласен будет разумнее использовать в место идентификатора. Писал бы сейчас, то точно не по идентификатору, а по имени экзешника.
Время прошло, когда писал, то только начинал разбираться с AHK. Русский хелп просто лажа какая-то. Уже после, стал ходить на оффсайт за помощью.
Проверить работу на нескольких машинах с разными фейсами и библиотеками - нет возможности.
Идея рабочая, а на форуме люди не глупые. Если что подправят и допилят.
Цитата:
Продолжать не вижу смысла, ибо универсальностью тут и не пахнет.
Если и так, то не на универсальность был расчёт. А расчёт был на скорость написания без особых временных затрат и на 100% прохождение нудного диалога, с чем скрипт успешно справляется. Как пример решения, уверен сгодилось.
Кому надо сделают под свой фейс и ОСь. Я ни как не планировал угадывать, что установлено у каждого. Но то что, как вы утверждаете, идёт промах по кнопкам, то я просто не знаю, что должно быть не так с системой, что б ориентированный по пикселям стандартный диалог из конструктора, имел иной вид чем у большинства.
В любом случае идея рабочая. Поправить под себя дело 15-30 минут. При желании можно поделиться своим вариантом здесь же.
Если ваш вариант лучше, то не вопрос - ни чего против не имею. Было б кому на пользу.
_________________ Если в голове каша, значит ваш котелок варит!
При желании можно поделиться своим вариантом здесь же.
Так я и поделился, под спойлером в сообщении выше. А Вам в любом случае спасибо за подсказку интересного решения по борьбе с рутиной. Заодно вот я и с новым софтом познакомился, AutoHotKey много для чего может пригодиться, у меня в работе рутины дохрена...
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения