И на этом устройстве можно сделать далеко не только моргание лампочкой. Вот идеи навскидку:
Сделать игру змейка на матрице светодиодов. Управление — наклоном платы.
Вмонтировать плату в мяч. Вычисляя ускорение платы и время полета мяча, можно вычислить высоту полета. Получилась игра кто выше подкинет мяч.
Электронный компас, стрелка которого рисуется на матрице светодиодов.
Игра для двоих, кто быстрее нажмет кнопку. В случайный момент времени на экране вспыхивают символы. Нужно успеть нажать кнопку раньше противника. Или не нажать, если символ запрещенный.
И это без дополнительных шилдов.
Не забывайте, что конструктор расчитан на 10-12 летних детей. Что изучают в 4-5 классе? Умножение столбиком.
Вы бы осилили всю документацию про регистры DMA контроллера Cortex M3 в том же STM32? Я вот и с 10+ лет опытом с трудом в этом разбираюсь.
Скорее всего, в среде программирования нет такого понятия как ПДП, прерывания. Также как нет их в Arduino. Да и не нужно это для простых поделок и обучения программированию.
Думаю, будут пружинные контакты, как щупы в мультиметрах.
Крокодилами цепляться очень небезопасно, чуть дернул за провол и он съехал на соседние контакты.
Скорее всего автор хотел сказать: "В процессор встроены 3 Ethernet PHY". Т.е. подключаешь трансформаторы, розетки и готов Ethernet.
Считаю это прикапывание ко словам с вашей стороны.
Платность побеждается кряками.
Самый большой недостаток — очень устаревший встроенный текстовый редактор. Я код пишу в Qt Creator, а компилирую и отлаживаю в IAR.
На STM32 тоже сначала попробовал Eclipse + GCC. Есть специальная сборка даже именно под STM32. Как-то не пошло, постоянно какие-то проблемы, какие-то конфиги надо править, JTAG отваливается… При каждом обновлении этой студии новые сюрпризы.
Перешел на IAR, все сразу из коробки работает.
Хорошее дело. Знаниями могли делиться только сильно ограниченное количество «своих» людей (чаще всего получивших приглашение от коллег). А когда число экспертов, имеющих право голоса ограничено, не откуда взяться новым знаниям. Начинают возникать мифы.
Мне это сильно напоминало инбридинг.
Система такая, безусловно, нужна. Исчезнут пробки, уменьшится расход топлива, сэкономится куча человеческого времени.
Но скептически отношусь к перспективам в России. У нас даже примитивные светофоры периодически отключаются, и наступает адъ и израиль на дорогах.
Опять же, есть проблема с мотоциклами. Беспилотными их делать не будут.
Любой более-менее сложный датчик может себя так повести. Тот же DS18b20 может начать выдавать +125 градусов.
В правильной системе нужно иметь возможность отключать питание периферии, особенно если она подключается по длинному кабелю и ловит помехи.
В IAR по умолчанию стек 16 байт, что уже довольно мало. Вся тяжесть у компилятора связана с количеством локальных переменных. Если их немного, а в данной задаче это так, то и стека нужно ровно столько же.
Также можно резервировать часть регистров под хранение переменных.
gcc в Atmel Studio настоятельно не рекомендую. Он по какой-то причине выкидывал из программы целые блоки, даже если выключить оптимизацию. Прочитали переменную из регистра, но нигде не используем — выкинуть нафиг, и чтение из регистра тоже. А то что я таким образом пытаюсь отлаживать программу его не волнует. При пошаговом выполнении порядок того, что написано на экране и того, что выполняется разный!
Зато IAR настоятельно рекомендую. Никогда не было с ним проблем, код получается компактным, все очень гибко настраивается.
Для Watchdog не нужен ни Arduino Uno, ни ассемблер. На С в IAR, например, сброс делается встроенной командой __watchdog_reset() которая при компиляции развернется в одну ассемблерную инструкцию. Конфигурация также предельно простая.
А не пробовали написать аналогичную программу на С, насколько она больше получится?
Сам когда-то начинал программировать AVR c ассемблера. Но сейчас посмотрел ваш листинг и приуныл. Программа практически не читаема. И дело не в том как она оформлена, с этим все отлично, а в том, что бизнес-логика скрыта ассемблером.
Подозреваю, что лидер по экологичности все-таки ядерный реактор. Там выделение парниковых газов нулевое. Отходы при правильном захоронении тоже не представляют проблемы.
Солнечные панели делают не для того, чтобы в атмосфере было меньше СО2, а для того, чтобы сэкономить деньги, там где много солнца, а провода тянуть дорого или не выгодно. Думаю, на экологию, если честно, всем плевать. Мировая биосфера перерабатывает гораздо больше СО2 и метана, чем какой-то там аэроропорт.
И это без дополнительных шилдов.
Вы бы осилили всю документацию про регистры DMA контроллера Cortex M3 в том же STM32? Я вот и с 10+ лет опытом с трудом в этом разбираюсь.
Крокодилами цепляться очень небезопасно, чуть дернул за провол и он съехал на соседние контакты.
Считаю это прикапывание ко словам с вашей стороны.
Самый большой недостаток — очень устаревший встроенный текстовый редактор. Я код пишу в Qt Creator, а компилирую и отлаживаю в IAR.
На STM32 тоже сначала попробовал Eclipse + GCC. Есть специальная сборка даже именно под STM32. Как-то не пошло, постоянно какие-то проблемы, какие-то конфиги надо править, JTAG отваливается… При каждом обновлении этой студии новые сюрпризы.
Перешел на IAR, все сразу из коробки работает.
Мне это сильно напоминало инбридинг.
Но скептически отношусь к перспективам в России. У нас даже примитивные светофоры периодически отключаются, и наступает адъ и израиль на дорогах.
Опять же, есть проблема с мотоциклами. Беспилотными их делать не будут.
В правильной системе нужно иметь возможность отключать питание периферии, особенно если она подключается по длинному кабелю и ловит помехи.
Также можно резервировать часть регистров под хранение переменных.
Зато IAR настоятельно рекомендую. Никогда не было с ним проблем, код получается компактным, все очень гибко настраивается.
Сам когда-то начинал программировать AVR c ассемблера. Но сейчас посмотрел ваш листинг и приуныл. Программа практически не читаема. И дело не в том как она оформлена, с этим все отлично, а в том, что бизнес-логика скрыта ассемблером.
https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%BD%D0%B8%D0%BA%D0%BE%D0%B2%D1%8B%D0%B5_%D0%B3%D0%B0%D0%B7%D1%8B
недостаточно?