И, кстати, в статье я не написал, просто забыл про это, но для кнопок реализован программный автоповтор. То есть если зажать и держать — то через одну секунду после первого нажатия снова будет, как бы выразиться, софтверное нажатие, дальше каждое последующее нажатие будет с периодичностью 200 мс до отпускания кнопки. Так что перебор значений в принципе не такой уж проблематичный. Но идею с энкодером я все равно считаю очень даже хорошей, и если будет время, прикручу его.
Ну в данном случае это просто вариант разводки платы под готовый корпус. Честно говоря я бы предолжил под себя переразвести, меня самого такое расположение кнопок не устраивает. Изначально думал что будет вверх, вниз, ввод. Но для такого экрана и такой организации меню, все-таки более логично - лево, право. Но переразводить и делать новую плату уже неохота было.
Спасибо за подсказку. Я просто думал не перегружать текст листингами с объяснениями. Да и если все подробно расписывать, довольно длинная портянка получится, ну и понимаете редкая птица долетит до середины... Тем более ассемблер, сейчас, мне кажется, он уже практически никому не интересен. Но если есть какие-то вопросы, задавайте, постараюсь ответить. Проект, опять же, сделан не вчера, а уже лет как семь назад. Но напрягу извилины, вспомню :)
Спасибо за поддержку. Я тоже уже очень давно пишу только на Си, и пишу для STM32 и ESP32 понеменгу стараюсь осваивать, но все-таки уверен что правильно начал с ассемблера - уверен что только асм дает полное понимание того как работает контроллер. Хотелось бы надеятся что кто-то все-таки еще интересуется оптимизацией и просто устройством контроллера. Ну и кстати еще повторюсь - я самоучка, и все что я делаю - чистый DIY и позиционируется так же.
Спасибо за развернутый комментарий. Ну да, на заказ это конечно громко сказано, на продажу я их никогда не делал. Насчет опасности тоже соглашусь (несмотря на то, что, повторюсь - не бывает безопасных устройств), но ведь я и в дисклеймере это написал. Скажу так, на самом деле посыл статьи - это возможность поизучать ассемблер, если кому интересно.
Я тогда только начинал изучать микроконтроллеры, и начал с ассемблера. Сейчас на асм я уже давным давно не пишу. Это просто как минимум очень долго да еще и муторно. Но, все-таки считаю правильным, что начал с него - как бы выразиться... асм дает полное ощущение контроля и понимание того как работает МК
Хотелось бы сразу ответить на первые комментарии. Критику я приветствую. И постараюсь ответить на некоторые замечания.
В главных: в тексте статьи я направильно выразился НАМЕРТВО НИЧЕГО НЕ ЗАВИСАЕТ. Как бы правильно выразится. В общем, в коде реализовано несколько софт таймеров, на базе одного 16битного, так вот те самые "костыли" это просто обнуление всех флагов, которые могут вызываться прерываниями перед запуском прерываний (команда sei). Видимо все-таки как то это влияет. По хорошему это в любом случае надо было сделать, просто со старыми источниками проблем не было. Итак еще раз - ничего не зависает, просто получается что не начинают работать софт таймеры. И не выполняется часть основного кода из-за этого. в Частности нагрузка ВСЕГДА отключена. И вот сброс регистров как раз и решил эту проблему, причем без всяких доработок вроде дросселя - его я позже добавил.
По поводу схемотехники и разводки плат - спорить не буду. И то и другое есть в репозитории, так что можно даже прям носом меня натыкать где там проблемы. Было бы интересно, без иронии, схема состоит из одной тиньки и всё. Кстати и керамика присутствует, практически на всех фото её очень хорошо видно. Просто находится с другой стороны платы. По поводу не оставлять без присмотра - это вообще можно в принципе к любому устройству применить, абсолютно надежных нет и не будет никогда. Никакой код не сможет предусмотреть абсолютно всё. Поверьте я за свою профессиональную карьеру уже много раз видел как сгорают дорогущие технологические установки напичканные супер модной отказоустойчивой электроникой. Ну а про свои скажу скромно - уже лет 14 работают, причем боюсь предположить сколько копий устройства сделано. И сделано на заказ.
Насчет контроллера - да, мега328, а еще лучше ESP32, причем опять же без иронии я задумывался об этом тоже уже давно, когда всяких TYUA у нас еще не было, но руки не дошли. Да и надобности уже нет, эта разработка покрыла абсолютно все потребности. И тинька была выбрана именно ввиду достаточности ее. Напомню писалось все на ассемблере. Ну и напоследок - проект открыт - это значит, что можно брать его и "допилить" прям вот под себя. Я поделился своим видением. Уже на то время термостат был настолько избитой и облизанной со всез сторон темой, а готовых устройств уже было настолько много, что в принципе не было никакого смысла этим заниматься, только чисто из спотривного интереса, и именно потому, что надо было сделать именно "под себя" вот прям так как мне надо. Я же просто надеюсь, что возможно кому то будет интересно посмотреть код, как что реализовано. Я сам - самоучка. И учился именно на таких проектах. Образование у меня совсем по другому профилю никак не связанное ни с электроникой ни с программированием.
Я вот тоже сколько переделал усторйств ни разу на аврках не отмечал подобного. По питанию было так: малогабаритный трансик 230/12, мост, ну и далее MC34063 со своей обвязкой. Работало всегда на ура, мощности с лихвой хватало. В свое время возникла проблема с трансформаторами, поэтому был начат поиск готового решения. И оно нашлось. Термостат разработан уже лет как 14 назад, и в варианте с трансом никаких проблем никогда не было и до сих пор нет.
Полностью соглашусь, сам частенько играл с клавиатуры - оригинальные джойстики для аркад не самая удобная штука, но в свое время я переделал старый геймпад от денди(просто выскоблил каплю с платы, и оставил только контакты - их и вывел на DIN-5), вот это уже удобная штука, с ним, прямо, намного комфортнее (даже лучше чем с клавы). Ну а насчет kempston'а в контроллере - тут скорее в угоду универсальности, да, на пентагоне нет, но много где есть, да и в конце концов это было несложно, да и его попросту игнорить его можно, не подключая никуда.
Update! Если кому-то интересно «пощупать» того самого Сапёра из скриншотов к статье, то благодаря ретро-сообществу игра теперь официально выложена на архив Virtual TR-DOS.
Хорошая мысль насчет энкодера. В принципе можно будет даже сделать новую версию... Как-нибудь потом...
Ну в данном случае это просто вариант разводки платы под готовый корпус. Честно говоря я бы предолжил под себя переразвести, меня самого такое расположение кнопок не устраивает. Изначально думал что будет вверх, вниз, ввод. Но для такого экрана и такой организации меню, все-таки более логично - лево, право. Но переразводить и делать новую плату уже неохота было.
Спасибо! Рад что понравилось :)
Обязательно учту. Постараюсь самые интересные моменты выкладывать с объяснениями.
Спасибо за подсказку. Я просто думал не перегружать текст листингами с объяснениями. Да и если все подробно расписывать, довольно длинная портянка получится, ну и понимаете редкая птица долетит до середины... Тем более ассемблер, сейчас, мне кажется, он уже практически никому не интересен. Но если есть какие-то вопросы, задавайте, постараюсь ответить. Проект, опять же, сделан не вчера, а уже лет как семь назад. Но напрягу извилины, вспомню :)
Спасибо за поддержку. Я тоже уже очень давно пишу только на Си, и пишу для STM32 и ESP32 понеменгу стараюсь осваивать, но все-таки уверен что правильно начал с ассемблера - уверен что только асм дает полное понимание того как работает контроллер. Хотелось бы надеятся что кто-то все-таки еще интересуется оптимизацией и просто устройством контроллера. Ну и кстати еще повторюсь - я самоучка, и все что я делаю - чистый DIY и позиционируется так же.
Спасибо за поддержку :D
Спасибо за развернутый комментарий. Ну да, на заказ это конечно громко сказано, на продажу я их никогда не делал. Насчет опасности тоже соглашусь (несмотря на то, что, повторюсь - не бывает безопасных устройств), но ведь я и в дисклеймере это написал. Скажу так, на самом деле посыл статьи - это возможность поизучать ассемблер, если кому интересно.
Я тогда только начинал изучать микроконтроллеры, и начал с ассемблера. Сейчас на асм я уже давным давно не пишу. Это просто как минимум очень долго да еще и муторно. Но, все-таки считаю правильным, что начал с него - как бы выразиться... асм дает полное ощущение контроля и понимание того как работает МК
Хотелось бы сразу ответить на первые комментарии. Критику я приветствую. И постараюсь ответить на некоторые замечания.
В главных: в тексте статьи я направильно выразился НАМЕРТВО НИЧЕГО НЕ ЗАВИСАЕТ. Как бы правильно выразится. В общем, в коде реализовано несколько софт таймеров, на базе одного 16битного, так вот те самые "костыли" это просто обнуление всех флагов, которые могут вызываться прерываниями перед запуском прерываний (команда sei). Видимо все-таки как то это влияет. По хорошему это в любом случае надо было сделать, просто со старыми источниками проблем не было. Итак еще раз - ничего не зависает, просто получается что не начинают работать софт таймеры. И не выполняется часть основного кода из-за этого. в Частности нагрузка ВСЕГДА отключена. И вот сброс регистров как раз и решил эту проблему, причем без всяких доработок вроде дросселя - его я позже добавил.
По поводу схемотехники и разводки плат - спорить не буду. И то и другое есть в репозитории, так что можно даже прям носом меня натыкать где там проблемы. Было бы интересно, без иронии, схема состоит из одной тиньки и всё. Кстати и керамика присутствует, практически на всех фото её очень хорошо видно. Просто находится с другой стороны платы. По поводу не оставлять без присмотра - это вообще можно в принципе к любому устройству применить, абсолютно надежных нет и не будет никогда. Никакой код не сможет предусмотреть абсолютно всё. Поверьте я за свою профессиональную карьеру уже много раз видел как сгорают дорогущие технологические установки напичканные супер модной отказоустойчивой электроникой. Ну а про свои скажу скромно - уже лет 14 работают, причем боюсь предположить сколько копий устройства сделано. И сделано на заказ.
Насчет контроллера - да, мега328, а еще лучше ESP32, причем опять же без иронии я задумывался об этом тоже уже давно, когда всяких TYUA у нас еще не было, но руки не дошли. Да и надобности уже нет, эта разработка покрыла абсолютно все потребности. И тинька была выбрана именно ввиду достаточности ее. Напомню писалось все на ассемблере. Ну и напоследок - проект открыт - это значит, что можно брать его и "допилить" прям вот под себя. Я поделился своим видением. Уже на то время термостат был настолько избитой и облизанной со всез сторон темой, а готовых устройств уже было настолько много, что в принципе не было никакого смысла этим заниматься, только чисто из спотривного интереса, и именно потому, что надо было сделать именно "под себя" вот прям так как мне надо. Я же просто надеюсь, что возможно кому то будет интересно посмотреть код, как что реализовано. Я сам - самоучка. И учился именно на таких проектах. Образование у меня совсем по другому профилю никак не связанное ни с электроникой ни с программированием.
Я вот тоже сколько переделал усторйств ни разу на аврках не отмечал подобного. По питанию было так: малогабаритный трансик 230/12, мост, ну и далее MC34063 со своей обвязкой. Работало всегда на ура, мощности с лихвой хватало. В свое время возникла проблема с трансформаторами, поэтому был начат поиск готового решения. И оно нашлось. Термостат разработан уже лет как 14 назад, и в варианте с трансом никаких проблем никогда не было и до сих пор нет.
Полностью соглашусь, сам частенько играл с клавиатуры - оригинальные джойстики для аркад не самая удобная штука, но в свое время я переделал старый геймпад от денди(просто выскоблил каплю с платы, и оставил только контакты - их и вывел на DIN-5), вот это уже удобная штука, с ним, прямо, намного комфортнее (даже лучше чем с клавы). Ну а насчет kempston'а в контроллере - тут скорее в угоду универсальности, да, на пентагоне нет, но много где есть, да и в конце концов это было несложно, да и его попросту игнорить его можно, не подключая никуда.
Update! Если кому-то интересно «пощупать» того самого Сапёра из скриншотов к статье, то благодаря ретро-сообществу игра теперь официально выложена на архив Virtual TR-DOS.
Ссылка на релиз: https://vtrd.in/release.php?r=302b98fc1ca9ebee336b0eb8bcf89c30
Поиграть можно прямо на сайте через встроенный онлайн-эмулятор или просто скачать себе образ для реального Спектрума.