AVR studio в вопросах и ответах

Обсуждаем контроллеры компании Atmel.
Ответить
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

Сообщение CB1 »

Попробуйте 7 версию Proteus, мне кажется что у автора видеоуроков то же седьмая и сделайте все как у автора и должно заработать. Не могу сказать точно, но может в 8 есть какие то отличия мешающие запустить проект.
Все гениальное - просто
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Есть специальные цифровые резисторы. Но и это в протеусе без необходимости, там есть специальные логические пробники, выполняющие роль светодиодов.
Да, протеус моделирует своеобразно - состояние светодиодов фиксируется на момент события перерисовки экрана, которая происходит раз в 10 секунд примерно и какое состояние попадётся на момент перерисовки такое у него и будет до следующей - никаких полутонов от ШИМ-а а наблюдаемое беспорядочное моргание, поскольку внутреннее время симуляции является переменной величиной и постоянно меняется когда не хватает ресурсов для реального времени.

Из этого вытекает ещё одна причина по которой у вас схема может "не работать" - 1 секунда работы контроллера может запросто оказаться одной минутой(или вообще 30-ю минутами) в реальном времени симулятора из-за нехватки вычислительных ресурсов на симуляцию схемы - поэтому имейте за правило не использовать ЛИШНИХ деталей, особенно нелинейных как полупроводники, где это возможно используйте специально упрощённые модели компонентов - цифровой(digital) резистор для подтяжек и т.д.
Не уверен, но там кажется даже цифровые транзисторы есть.
Смотрите в строке состояния симулятора, там после запуска отображается внутреннее время симулируемой схемы, и если там бегут не секунды а десятые доли секунды или вообще миллисекунды - ваша схема слишком сложна для данного железа, нужен процессор помощнее но как правило это слабо помогает.

Если симуляция вообще не запускается, смотрите сообщения симулятора - обычно это признак проблемы в моделях или тонких настройках симуляции - модель не получается построить из-за отсутствия земли в изолированном участке схемы или симуляция начинается сразу с необходимости слишком малого шага по времени для обеспечения нужной точности в какой-то из моделей компонента используемого в схеме.
Контактная информация:
Реклама
Встал на лапы
Сообщения: 148
Зарегистрирован: Ср дек 29, 2010 21:19:03

Сообщение c717411 »

Alexeyslav писал(а):Да, протеус моделирует своеобразно - состояние светодиодов фиксируется на момент события перерисовки экрана, которая происходит раз в 10 секунд примерно и какое состояние попадётся на момент перерисовки такое у него и будет до следующей - никаких полутонов от ШИМ-а а наблюдаемое беспорядочное моргание, поскольку внутреннее время симуляции является переменной величиной и постоянно меняется когда не хватает ресурсов для реального времени.
не пишите ерунду. Прочитал раза три Ваш пост, какая-то словесная диарея.
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

Сообщение CB1 »

В Poteus есть особенности в моделировании, он не всегда правильно и точно моделирует и это нужно учитывать. Конечно программы вроде той о которой мы говорили он моделирует правильно.
Все гениальное - просто
Реклама
Эиком - электронные компоненты и радиодетали
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

модель не получается построить из-за отсутствия земли в изолированном участке схемы
Не много не понял, то есть мне нужно вместо батарейки подключить землю к светодиодам? А где она впротеусе? Не могу найти... И что обозначают мигающие синие и красные квадратики?
Реклама
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

Сообщение CB1 »

Скидываю в архиве рисунок, там пример подключения светодиода. А в левом боковом меню открыто где находится земля, выше над строчкой выбора земли - выбор выхода +5В. При подключении нагрузки к микроконтроллеру нужно использовать их, потому что при подключении к батарейке работать не будет.
Вложения
1111.rar
(39.72 КБ) 175 скачиваний
Все гениальное - просто
Реклама
Друг Кота
Сообщения: 4550
Зарегистрирован: Чт май 05, 2011 21:26:34
Откуда: Украина, Славутич

Сообщение Alexeyslav »

Квадратики на выводах контроллера отражают их логическое состояние - синий - "0", красный - "1", серый - "Z" или отключен/аналоговый вход.
Контактная информация:
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

CB1 Уррааа!) Заработало!) Благодарю 8)

=====
Вопрос возможно не по теме, за ранее прошу прощения. :oops: Подскажите пожалуйста, тип файла S Source (можно так же открыть блокнотом) после компиляции в протеусе превращается в файл HEX. (либо elf). Это, как я понимаю и есть сама прошивка, верно?
А вот можно ли наоборот из hex-файла сделать S Source, (чтобы получился программный код, который можно подредактировать, скажем в протеусе...) ? Другими словами можно ли подправить уже существующую прошивку?
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

*.S это не файл исходника в широком смысле, а только исходника на Ассемблере, причем, если я правильно помню, gnu-ассемблера.
Из *.elf-файла получить исходник проще, командой objdump. Причем возможно вернуть даже исходник на ЯВУ, на Си, например. Если скомпилировано было правильно, сохранятся и имена комментариев, и комментарии и т.п.
Из *.hex - только дизассемблировать, причем потеряются форматирование, комментарии, макросы, именованные переменные и прочее. Будет тупо набор команд. Достаточно ли у вас знаний чтобы в этом разбираться?
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

знаний к сожалению не достаточно пока. А вот желание разобраться есть. Если можно на конкретном примере. Вот у меня например есть elf-файл. Мне необходимо увидеть его код и прочие команды на языке Си. Допустим проекта не имеется, а только сам файлик-elf. С чего начать, поэтапно?
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

если у вас только .elf файл то код на языке Си вы никогда не увидите
если же к .elf файлу есть исходники на Си, то можно увидеть привязку машинных инструкций к конкретным строкам кода на Си
так работает отладка
но получить из машинных кодов текст на языке Си не получится, чудес таких нет
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

другими словами подправить "вытянутую" из МК прошивку невозможно? Только написать самому заново, так?

======
И еще вопрос возник: как выглядит код " одновременности"?) Допустим мне необходимо подать единичку только на две лапки МК но одновременно. Как это будет выглядеть в виде кода на языке Си в программе AtmelStudio?
Последний раз редактировалось Олегыч1 Вт июн 14, 2016 12:12:29, всего редактировалось 1 раз.
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

Подправить можно на уровне ассемблера
Но нужно будет самому следить, чтобы всякие важные таблицы типа векторов прерываний не сьехали

Если вы собрались чужую прошивку править, будьте готовы к тому, что она может быть защищена от чтения
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

отлично, значит все-таки это возможно. Я предыдущее подправил сообщение о вопросе об одновременности:)
Электрический кот
Сообщения: 1040
Зарегистрирован: Вс сен 25, 2011 19:09:33

Сообщение axillent »

Если ножки на одном порту то выставить единички одной командой сразу
Если на разных, то последовательно, разрыв по времени будет от одного до нескольких тактов MCU, на 16мгц такт это 62.5 наносекунды
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

Если ножки на одном порту то выставить единички одной командой сразу
Немного не понял... Допустим нужен сигнал одновременно на первой ножке МК и на второй (по имени PB0 и PB1)
Вот такой способ не получился:
//Подать сигнал
PORTB = 0b00000001;
PORTB = 0b00000010;
//Выдержать время
_delay_ms(1000);
//Убрать сигнал
PORTB = 0x00;
_delay_ms(300);
Это не хвост, это антенна
Аватара пользователя
Сообщения: 1368
Зарегистрирован: Вс мар 28, 2010 12:52:22
Откуда: Беларусь

Сообщение dr.doc »

А написать PORTB = 0x03 (0b0000 0011)?
«Еще я хотел бы, чтобы наши ученые изобрели какой-то новый источник энергии, чтобы мы на коленях не ползали даже перед нашими братьями, умоляя их и выпрашивая тонну нефти или кубометр газа», — рассказал белорусский президент.
Поставщик валерьянки для Кота
Аватара пользователя
Сообщения: 1941
Зарегистрирован: Пт фев 27, 2015 20:57:08
Откуда: Курск

Сообщение Олегыч1 »

да, то, что нужно. Спаксибо!

==============


Теперь новая проблемка возникла. С программами вроде немного разобрался. В Протеусе все работает как и хотел. Решил прошить в реальности свой микроконтроллер. Прошил, все отлично. Но как теперь его правильно включить, чтобы мои светодиоды замигали наконец?)) При прошивке ножки МК атмега-8а по имени VCC и AVCC (7 и 20 лапки) были соединены воедино. При подаче питания на эти лапки светодиоды молчат. Зачем у МК вообще две этих ножки питания, а не одна? Две земли понятно-для удобства подключения (хочу в ту, хочу в другую подключусь), верно?
Надо ли отпаивать программатор от МК, а то он у меня припаян))
Программатор самый простой Громова с внешней подачей питания +5 вольт.
Анод светодиода подключил к ножке МК, катод светодиода к GND МК
Что неправильно делаю?
CB1
Прорезались зубы
Сообщения: 232
Зарегистрирован: Чт янв 01, 2015 13:44:12

Сообщение CB1 »

Выходы земли нужно подключать два, а не на выбор.
Про подключение микроконтроллера можно здесь почитать http://www.myrobot.ru/articles/mc_stab.php
Опять же нужно не забывать подключить выход Reset, а иначе то же микроконтроллер может не захотеть работать.
Прочитал сообщения про то как получить код из прошивки, можно только из hex файла получить код на ассемблере, а по другому никак.
Все гениальное - просто
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Сообщение COKPOWEHEU »

axillent писал(а):если у вас только .elf файл то код на языке Си вы никогда не увидите
если же к .elf файлу есть исходники на Си, то можно увидеть привязку машинных инструкций к конкретным строкам кода на Си
так работает отладка
но получить из машинных кодов текст на языке Си не получится, чудес таких нет
*.elf это не машинные инструкции, не путайте с *.hex или *.bin. Если elf-файл собран с отладочной информацией (флаг -gdwarf-2 в gcc)из него вполне можно достать исходный код, хотя и не напрямую и не полностью. Как я уже говорил, это делается утилитой objdump. В случае AVR команда выглядит как
avr-objdump -S file.elf > file.lss
тогда в file.lss будет и часть исходника на Си и его дизассемблерированный вариант. Разобраться и подправить можно.
Зачем у МК вообще две этих ножки питания, а не одна? Две земли понятно-для удобства подключения (хочу в ту, хочу в другую подключусь), верно?
Две (или более) земли нужны для обеспечения большего суммарного тока. По документации максимальный ток по линиям питания 200 мА. Для тоненьких проводничков, напыленных на кристалле, это много. Чтобы не нагружать эти проводнички сверх меры, питание подается на разные части кристалла с разных внешних выводов. С AVCC все еще немного сложнее. Этот вывод используется для запитывания всей аналоговой части - компаратор, АЦП и PC0-PC3, то есть без подачи питания все это может не заработать. Это сделано для того чтобы можно было питать ядро от менее "чистого" питания, чем АЦП, причем шумы от самого ядра на питание АЦП также не попадают. Таким образом можно увеличить точность преобразования.
Анод светодиода подключил к ножке МК, катод светодиода к GND МК
Надеюсь, резистор не забыли...
Привели бы полную прошивку (с нормальным форматированием и под спойлером!), схему и фото платы.
Ответить

Вернуться в «AVR»