Наконец-то сделал оправку для установки объектива МТО-11 на штатив от телескопа, установка получилась достаточно удачной, объектив сидит на монтировке как влитой, объектив с установленным окуляром от телескопа становится телескопом системы Максутова с апертурой 100мм, а при желании вместо окуляра можно установить камеру и заниматься астрофото (чем и хочу заняться при возможности).
Задонатил мне один хвост знакомый радейку — Alan HM43. 1985 года выпуска. Живая, но сожалению перепрошить пока непонятно как, потому что их программировали на заводе. И в этой версии зашит вообще 1 канал. А всего их в этой станции 16.
Диапазон частот 33-50 Мгц. Тоже совсем не стандартный, но совпадает с некоторыми советскими военными станциями. Работала в пожарной охране Ижевска.
Сложно куда-то применить такой девайс, даже если сколхозить свою управлялку синтезатором. Тянуть на СВ наверное большого смысла нет, а выходить на 30-40мгц как-то непонятно зачем.
Цели пока не стоит перетянуть её. Я понимаю что это будет бесполезная работа. Но на всякий случай потом определю её частоту.Может куда пригодится. У меня военки есть в наличии, побалуемся.
Спасибо)) Ещё бы этих денег получить... А то не первый раз занимаю места на Радиокоте и на сколько помню не всегда они присылали. А по моей статье с БП в своё время даже целую тему на форуме просто удалили бесследно... Хотя там постов было не мало, народ делился печатками и т.д. Совершенно непонятно почему удалили.
Вроде главный кот писал, что денег всем перевёл. Там на форуме и раньше проскакивали жалобы на медленную рассылку призов. БП с оранжевым дисплеем от телефона Сименс? Помню такой.
Да офигенно! Оказывается, ты один из моих учителей, когда я учился программировать на си. Тогда ассемблер плохо понимал. Недавно нашёл в мусоре несколько микроконтроллеров at89c2051 с параллельным программированием, вот это интересный квест, написать для них программатор, заодно и питон начал изучать. Писать на ассемблере, для, как пишут, легендарного ядра 8051, отдельный кайф :3
А мне на самом деле до сих пор стыдно, что в тех прошивках на ассемблере я не использовал команды умножения)) Почему-то тогда мне не совсем было понятно что и как, было лень разбираться. И по привычке с ассемблера Z80 использовал другие методы (циклы, сдвиги). В целом ассемблер вполне себе гибкая штука, но надо всегда думать об используемых регистрах...
А вот какой ассемблер мне не нравится так это на pic16, с их банками памяти ещё.
Полезное чувство
Штука то гибкая, и мозги хорошо проветривает. Но нагромождения кода плохо воспринимаются визуально. То есть понять смысл происходящего мешают многочисленные служебные перекладывания из регистра в регистр, не имеющие отношения к общему алгоритму. Регистры нужно постоянно в голове держать, банки регистров, пока просто пишу в комментариях используемые регистры над каждой "функцией". Должен же быть какой-то инструмент для этого? И инструмент от дураков, которые могут потерять стек в 128 байтах озу и тупить почему данные портятся.
Ну да, тот же Си исключает подобные ошибки, но так хочется goto )))
Я теперь пользую асм только для МК с очень скудным количеством ОЗУ и флеша, например attiny13, ну или даже attiny12, где ОЗУ вообще отсутствует))
Си порождает свои ошибки, на своём уровне абстракции от железа, применение goto ухудшает положение. Как всегда, нужно искать компромисс. Мнение дилетанта. Мне просто нравятся микросхемы и ассемблер и си и другие языки
Ну да, на си свои ошибки, но честно говоря после ассемблера появляется облегчение)) Но есть масса не очевидных вещей при использовании прерываний и переменных более 8 бит, там прям ууххх...
А так я дилетант не менее, всё таки для меня это тоже хобби, а не работа.
А после си, на ассемблере появляется другое облегчение — я уверен в своих косяках, на компилятор их уже не свалишь Какая масса вещей? Ты же знаешь ассемблер, что может быть неочевидного в си, с такими знаниями?
Ну это если не смотреть дизасм как оно получается, и вообще я имею ввиду если не знать асм при этом. Вот к примеру, есть программный таймер или переменная более 8 бит, которая изменяется в прерывании. Если в основном цикле читать/записывать эту переменную, а в момент когда первые 8 бит будут обработаны произойдёт прерывание и переменная изменится, то явно будет глюк. На си, когда на вид работа идёт сразу с 16 битной (например) переменной эта ошибка очень не очевидна. Ну или трюки с тем, что бы после перехода в обработчик прерываний сразу разрешать прерывания. На си не всегда понятно, как это сработает, но иногда такое решение просто необходимо.
Да, атомарный доступ к переменным, атомарные операции? О таком с ходу не догадаешься, согласен.
Типа вложенных прерываний? Ни разу не разрешал прерывания внутри прерывания. Что может пойти не так? Если внутри обработчика, перед глобальным разрешением, запретить лишние прерывания, то вроде должно работать?
В 8 битых то да, они всегда атомарные по 8 бит)))
А прерывания вообще по разному, обычно разрешаю внутри обработчиков если требуется достаточно точная ловля, например, внешнего прерывания. Не так давно писал таймслотовый протокол с хоппингом каналов на nrf24L01, так вот ловил прерывания от этой микрухи для синхронизации таймслотов. При этом в другом обработчике прерываний сразу разрешал. А пойти может не так если произойдёт перезапуск обработчика если он не завершился от первого вызова. Для этого ставил флаг в переменной о том, что обработчик выполняется и повторный вызов об этом узнавал и сразу выходил из обработчика. А ситуация такая возможна не из-за того, что обработчик жирный и долго выполняется, а из-за того, что при синхронизации идёт поправка таймера, который этот обработчик вызывает, ну и в "удачных" случаях следующее обнуление таймера может произойти очень скоро.
Круто. Значит, если соблюдать осторожность, то работает. В руководстве пользователя компилятора xc8 есть такое примечание, в разделе "Enabling Interrupts":
Цитата:
Never re-enable interrupts inside the interrupt function itself. Interrupts are automatically re-enabled by hardware on execution of the RETFIE instruction. Re-enabling interrupts inside an interrupt function can result in code failure.
Ну то пики, я то на авр такое проворачиваю. На пиках же ещё надо флаг прерывания сбрасывать перед выходом из обработчика. А ещё не у всех пиков стек в ОЗУ, у каких-то стек аппаратный уровня на 3 и действительно в случае повторного вызова стек может переполниться))
Но вообще в документации видимо решили на корню избавиться от возможных глюков))
Я ещё когда только начинал на WinAVR Си компилировать, то столкнулся с тем, что если компилятор не видит в функции, что глобальная переменная может меняться в процессе выполнения данной функции, то он тупо ее константой делает. Потом только подсказали тип volatile.
Программный стек переполнить тоже много ума не надо... Мне хватило.
В документации не открещивались от глюков, имхо, просто там прямо заявляют — компилятор не даёт гарантий. Как с атомарностью. Вся ответственность на программисте. В стиле си.
Кроме volatile очень не хватает atomic ><
Ну штош,эпопея с созиданием нового принтера вышла на финишную прямую)
Ещё есть технические огрехи и кой-какие недоработки, но в целом оно исправно и работает. Тестовая печать на шесть часов завершена почти успешно (внезапно выяснилось, что новые мозги умеют в адекватное возобновление печати после аварийного выключения), осталось подрегулировать механику и заказать покрытие для рабочей поверхности стола.
На фото старый и новый принтеры в сравнении и новый принтер на своём рабочем месте
Статистическая информация скрыта от поисковых роботов для оптимизации производительности и повышения качества индексации.
Распознана поисковая машина: claudebot
Всего обращений к сайту: 603117