К основному контенту

Сообщения

Наболело

Как же меня достали разработчики современного программного обеспечения под Андроид! Модель бизнеса "продажи превыше всего" не позволяет делать ПО, которjм можно пользоваться - это я вам категорически заявляю. В тот самый момент, когда тебе нужна какая-то функция, о которой ты знаешь, что она есть и даже специальное приложение для этого заранее ты установил, вдруг оказывается, что "Приложение остановлено" или "Приложение не отвечает" - и что делать?! А вся твоя вина в том, что ты не покупаешь каждые 3 месяца новый телефон с самой последней версией Андроида, с объемом ОЗУ на 1-2 гигабайта больше предыдущего, с быстродействием на 1-2 гигагерца выше и так далее. Все, тебя лишают возможности применить СМАРТ фон по назначению, т.е. использовать его УМНЫЕ функции. Умные - значит полезные. Дебилы в разработке ПО решили, что новые иконки, цветовые палитры, анимации меню - все это умные функции, а какое-то тупое редактирование файлов, просмотр PDF или работа с табли...

Прибавление

 Получил свой заказ из Китая. Размер 40х55 мм (примерно). Себестоимость с учетом доставки 107 руб/штука. 

Биполярное расстройство

Биполярное расстройство - это совсем не плохо настроенный усилитель на биполярных транзисторах. Это значительно хуже ... Но медицина нам поможет. Остаются лишь непрерывные броуновские колебания: делать конструкцию с максимальным фаршем или ограничиться необходимым и достаточным минимумом? Тоже в некотором роде биполярность вариантов, которая расстраивает. Забожалось сделать GSM-сигнализацию с блэкджеком и женщинами с низкой социальной ответственностью... Напланировал кучу всяких возможностей, вплоть до зачатков "умного дома" (в частности, наличие 8 аналоговых входов для всяких датчиков, 8 дискретных датчиков и 8 линий для датчиков DS18x20, а так же 8 дискретных выходов). Само собой, запланирована расширяемость системы и т.п. Но... Конкретно мои личные потребности все эти задумки перекрывают с запасом лет на 10, т.е. мне хватило бы раза в 3-4 меньшего количества всех этих входов-выходов. А все эти навороты как бы "для народа" (ибо я никогда из своих поделок тайны не ...

Есть ли жизнь на Марсе?

Есть ли жизнь на Марсе, нет ли её там - науке это не известно. Наука пока не в курсе дела. Есть ли жизнь в экосистеме AVR? Или эти мамонты уже вымерли, уступив более теплокровным ARM?  По-моему, для неленивого энтузиаста экосистема AVR предоставляет еще множество возможностей. Не смотря на 8 бит и достаточно скромные характеристики, жизнь там не только существует, но и довольно эффектно развивается. На видео - небольшая (как кредитка) игрушечка, реализованная на attiny85 ... Напомню: всего 6 ног, 8К flash и 512 байт RAM. Вот так-то...

Параллельная работа с 1-wire

Продолжая свой полет, неожиданно сделал давно задуманную, да почему-то постоянно откладываемую на потом, штуку... А именно: параллельный опрос нескольких термодатчиков семейства DS18x20. Дело в том, что у этих датчиков в качестве плюса технологии позиционируется обращение по уникальному адресу, что позволяет повесить на 2 провода хоть сотню датчиков и с каждым работать индивидуально. Плюс-то это плюс, да, как любой плюс, состоит из двух минусов (один вдоль, другой поперек). Последовательный опрос нескольких датчиков, хоть по адресу хоть без увеличивает общее время опроса пропорционально количеству датчиков. В частности, в моих личных играх опрос 8 датчиков последовательно затягивался почти на 100 мс. С учетом того, что примерно половина этого времени будет требовать запрета прерываний (кусочками по 65 мкс примерно), такая длительность выглядит не очень хорошо. Кроме того, при "адресной" работе даже с тремя датчиками возникает проблема иного рода, так сказать, верхнеуровневая....

Минималистическая RTOS - продолжение

Ну вот, санитары отпустили, и теперь можно вспомнить, что еще не совсем забыто и сделать, что еще не сделано. Например, рассказать, чего это такое я хотел рассказать ранее, да не успел. Собственно вот что я сделал. typedef uint16_t timer_sz_t ; /// тип функции таймера. если возвращает не ноль, то таймер продолжает работать. /// в качестве параметра получает указатель на структуру timer_struct_t, т.е. на тот самый /// экземпляр таймера, к которому привязана функция. /// вызывается в "безопасном" режиме, т.е. при запрещенных прерываниях /// (атомарно), поэтому из функции можно модифицировать значения полей таймера напрямую, /// хотя для поля \b counter это делать не имеет смысла, т.к. это поле все равно может измениться после /// завершения функции. typedef bool (* timer_callback )( void * t ); /// тип структуры, описывающей таймер typedef struct { timer_sz_t counter ; //!< счетчик timer_sz_t period ; //!< заданный период timer_callback sh...

Минималистическая RTOS

В моём гнезде прибавление. В смысле, алгоритм вылупился. Не скажу, чтобы исключительно новый, вряд ли гениальный, но, мне кажется, заслуживающий внимания. Преамбула Что мы понимаем под понятием "таймер"? Ну, не в смысле задатчика времени варки яиц всмятку, а в программировании? Это некая функция, которая "сама по себе" выполняется через заданные интервалы времени. Или же чуть иначе: функция выполнится через заданный интервал времени однократно. Наконец, и третья интерпретация тоже имеет место быть: таймер - это некий счетчик, который сам по себе считает, а мы можем время от времени поглядывать на его значение и принимать какие-то решения. Амбула Как обычно реализуются таймеры в микроконтроллерном программировании? Безусловно, наиболее удобно - с задействованием аппаратных таймеров-счетчиков и прерываний от них. Существует вариант реализации и без этого, но сие удовольствие надо оставить пациентам более строгого режима лечения. С прерыванием от аппаратного таймера вс...