Обсуждение:Архитектура AVR в примерах
Добавить тему«Вводная»
[править]Конечно, можно отделаться ссылкой на Википедию, но лучше было бы в самом начале статьи описать, что такое AVR и почему это может представлять интерес. --SSJ (обсуждение) 00:59, 9 мая 2014 (UTC)
- С замечанием, в целом, согласен, однако, с одной стороны, мне бы не хотелось создавать в практикуме «филиал» соответствующей статьи Википедии; с другой, — я склонен работать не с «определением» объекта («одна из многих распространенных сегодня архитектур микроконтроллеров…»), но с совокупностью свойств оного. Предполагается, что именно познакомиться с этими свойствами и позволит данный практикум. (Хотя, конечно, краткий их перечень не помешает.)
- Кроме того, на май приоритетными для меня являются:
- написание еще нескольких (порядка 2–5) лабораторных работ (прежде всего — в раздел «Примеры», но также и лабораторную по встроенному АЦП во «Взаимодействие»);
- дополнение практикума принципиальными (а возможно и монтажными) схемами рассматриваемых блоков.
- Речь же не о формальном определении, которое описано в Википедии, речь о лекционном объяснении того для чего и с чем предстоит работать. --SSJ (обсуждение) 22:39, 9 мая 2014 (UTC)
- Возможно. Но, опять-таки, — задача не первоочередная. Кроме того, очертить круг задач будет проще, когда сами эти «задачи» будут в наличии. — Ivan Shmakov (о ▞ в) 08:04, 12 мая 2014 (UTC)
- Речь же не о формальном определении, которое описано в Википедии, речь о лекционном объяснении того для чего и с чем предстоит работать. --SSJ (обсуждение) 22:39, 9 мая 2014 (UTC)
Материально-техническое обеспечение
[править]Лично мне не хватает понимания зачем это все надо, некого предварительного обзора? Возникает впечатление, что это какое-то капание старого железа, зачем? Какие практические задачи можно решить с этими устройствами? Далее, если я вдруг заинтересовался предварительным обзором, которого тут нет, возникает вопрос что это за устройства, которые требуется для проведения работ. Надо какие-то изображения, понять как свободно можно купить эти устройства, допустимо даже ссылки на серьезных производителей и уровень цен, понять сколько надо затратить в домашних условиях, чтобы начать работу. --SSJ (обсуждение) 22:06, 9 мая 2014 (UTC)
- Почему именно старого?
- Изображения отдельных компонент, конечно, обнаружатся на Викискладе, однако ценность их для материала представляется несколько сомнительной. С другой стороны, изображения собранных схем мне, по-видимому, придется создавать самому, а я, честно говоря, не имею сколь угодно существенного опыта фотографа. Как упоминал выше, однако, — я рассматриваю возможность дополнения практикума монтажными схемами, как это уже сделано в «простейшем устройстве.»
- Раздел с «методическими указаниями» у меня запланирован. Не уверен, что в нем следует дублировать перечень компонентов (из разделов «Перед началом» конкретных работ), но некая оценка стоимости действительно может оказаться полезной.
- Ссылки именно на производителей, в общем случае, уместными не будут, поскольку последние, AIUI, обычно занимаются исключительно оптовыми партиями. Из торгующих в розницу — местные радиолюбительские магазины перечислять опять-таки едва ли есть смысл; при заказе почтой — w:AliExpress, w:eBay, для жителей США — w:en:Digi-Key, — точно также, как и для едва ли не любой другой радиолюбительской электроники.
Интерактивность и требования к уровню подготовки
[править]- Материал достаточно сухой, интерактивности легче добиться, когда ведешь разговор с потенциальным обучаемым. Далее тут так и сделано, но почему-то предполагается, что основы этого читателю уже известны. Вот например, когда я задался вопросом поработать с микроскопом у меня возникло много вопросов, можно не стесняться описать тривиальные на первый взгляд вопросы, они позволят войти в тему даже не знакомому с основами. вот как пример Изучение микромира под микроскопом/§3 --SSJ (обсуждение) 22:14, 9 мая 2014 (UTC)
- Некие требования к уровню подготовки у материала, действительно, имеются, — как, например: навыки монтажа электронных схем; владение текстовым редактором, командным интерпретатором Bash, универсальным сборщиком Make. Другое дело, что их также следует указать явно (по-возможности, — дав ссылки на материал для изучения.)
- Если при изучении возникают конкретные вопросы, — буду благодарен за их перечисление на соответствующих страницах обсуждения. Вполне возможно, что я действительно «оставил за кадром» некоторые неочевидные подробности.
- По материалу Изучение микромира под микроскопом/§3 — оставил комментарий на странице обсуждения.
Не работает PCINT
[править]Совсем новичок в AVR, так что вопрос почти наверняка нубский. Есть схема на МК ATtiny2313, вот сама схема. К PB3 там подключен генератор импульсов. Задумка в том, что бы на табло показывалось количество импульсов с момента старта девайса. Мучил гугл, не помогло. Методом тыка тоже попробовал, на всякий случай. Подозрения мои в том, что я так и не включил нужные прерывания. Вот код. Если кто-нибудь подскажет, где я накосячил, буду признателен. 188.162.64.125 08:24, 22 июля 2014 (UTC) kosc
- Так и есть, — в коде отсутствует разрешающая прерывание
PCINT
строкаGIMSK |= (1 << PCIE)
. См. General Interrupt Mask Register – GIMSK. ATtiny2313/V: 8-bit Microcontroller with 2K Bytes In-System Programmable Flash. Проверено 22 июля 2014. — Ivan Shmakov (о ▞ в) 09:23, 22 июля 2014 (UTC)
- Некоторые общие замечания по коду.
#define F_CPU
лучше вынести вMakefile
(точнее, — в командную строку GCC;-DF_CPU=1000000UL
), или по меньшей мере заключить в#ifndef F_CPU
,#endif
. Это позволит пересобирать код для разных частот без изменения.c
-файла. (См. Архитектура AVR в примерах/Простейшая программа.)- Стандарт допускает объявление
main
какint main ()
. Аргументыargc
иargv
лишены смысла при программировании для AVR и ради ясности кода их следует опускать. - Функции
setNumber
,setDigit
,setPower
можно объявить какstatic
— локальные для данного «модуля». Такой прием позволяет избежать конфликтов имен в более сложных программах, состоящих из нескольких модулей (.c
-файлов.) Кроме того, их можно разместить в файле в таком порядке, что вызываемая функция всегда будет стоять перед вызывающей, — что сделает ненужными отдельные объявления этих функций. - BTW, «верблюжий регистр» (
namesLikeThis
) в C используется редко; обычно «слова» разделяются_
(like_this_one
.) - Наконец, код в целом следует переписать для использования управляемого прерываниями «цикла событий.» В этом случае, отпадет необходимость в «холостых циклах» (
_delay_ms
.) Примеры можно найти в данном практикуме.
- — Ivan Shmakov (о ▞ в) 09:37, 22 июля 2014 (UTC)