Микроменю на ассемблере PIC12/16 на основе индексов

PIC
Хочу поделится своим никому не нужным творением — микроменю на ассемблере PIC12/16.
При создании этого микроменю преследовалось 2 цели:
1. Спортивный интерес — вместить «полноценное» меню + работу с знаковым дисплеем и крестовиной кнопок в 1 кБ (1К слов, если быть точнее), именно столько в PIC16F84, который и был использован.
2. Сделать меню достаточно гибким в настройке, чтобы иметь возможность применять его в простеньких проектах, без необходимости влезать в его дебри, и понимать, как оно написано.


Читать дальше

Как получить актуальное время от GSM модуля, даже если оператор его не дает

Ниже, под катом, мой путь решения этой нелегкой (как оказалось) задачи.
Сразу скажу, что в странах без летнего/зимнего времени все гораздо проще.


Читать дальше

Повторяем Китай (своя прошивка для релейного модуля STC15F104W + ESP8266)

Купил себе на поигратся релейный модулек на базе STC15F104W и ESP8266. Вот такой www.banggood.com/ESP8266-5V-WiFi-Relay-Module-Internet-Of-Things-Smart-Home-Phone-APP-Remote-Control-Switch-p-1126605.html? (это не реклама, я вообще его у себя в городе брал, а не в Китае)

Читать дальше
  • +2
  • 11 октября 2018, 15:48
  • Gnusmas
  • 2

Уже не такой простой диспетчер с динамической очередью задач для PIC12F/16F

Доброго времени суток. Опять я со своими ассемблером и ПЫК16. Вот наконец-то, как и запланировал, дописал свою «Недо ОС» на ассемблере под Пики. Кому интересно, с чего начиналось — могут почитать здесь: we.easyelectronics.ru/Gnusmas/prostoy-dispetcher-s-fiksirovannoy-ocheredyu-zadach-dlya-pic16.html

В этой итерации я шагнул гораздо дальше. Настолько дальше, что следующей итерацией должно уже быть что-то на Си. Но я все же прошу заглянуть адептов асcемблера и высказать свое 'фе' по поводу качества и функционала моего кода, чтобы я был твердо уверен, что выжал все, что можно было.
Из того что усовершенствовано по сравнению с предыдущим проектом:
  1. Очередь задач из фиксированной переделана в динамическую, в виде кольцевого буфера, размер котрого задеться в файле настройки ОС
  2. Проект «Недо ОС» разбит на несколько файлов: файл «ядра», файл задач, файл настройки ОС, файл макросов общего употребления
  3. Все возможные настройки системы упакованы в макросы и по максиму автоматизированы. То есть расчитано, что Вы зайдете в файл настройки системы Nedo_OS_v1.4.h, внесете в него необходимые Вам параметры ОС, а дальше все само подстроится и создастся. Вам останется только написать обработчик для каждой Вашей задачи.
  4. Исправление банальных ляпов вроде переписи содержимого таймера в конце, а не начале обработчика прерывания, что устраняет неравномерность возникновения прерываний при разном количестве таймеров, и прочие мелочи.

Сейчас проект (8 светодиодов мигают каждый со своей частотой) занимает 269 слов памяти программ и 52 байта ОЗУ, влазя таким образов во все 12F и 16F камни. На 16F84 остается 755 слов памяти программ (3/4 доступного объема) 16 байт ОЗУ (1/4 доступного обьема). Как видим, добавление очереди задач в виде кольцевого буфера и номера целевой задачи для каждого таймера съело львиную долю ОЗУ. Замечания и пожелания приветствуются.

Простой диспетчер с фиксированной очередью задач для PIC16

Меня посетила мысль, что если ты хочешь хорошо освоить какое-то семейство МК, надо собственноручно, на его ассемблере, написать для него какую-то управляющую систему. В идеале кооперативную ОС, по для начала можно и что-то попроще, типа местного динамического диспетчера. Я уже написал такой для MCS-51, но сейчас не о нем. Последнее время что-то внутри меня постоянно подталкивало изучить ПИКи. Наверное, чтобы можно было самому сравнить их с тем что я уже знаю (а знаю я уже MCS-51 немного, и AVR еще меньше), а не читать форумные баталии аля «AVR vs PIC». В процессе написания своей первой псевдо-ОС под ПИКи я немного разобрался с ними, и уже чувствую себя гораздо увереннее. Под катом результат работы — диспетчер с фиксированной очередью задач и службой на 8 (можно меньше) программных таймеров. Данный проект независимо (каждый со своей частотой) мигает 8 светодиодами на порту В. Проект занял 223 слова, что составляет 22% от доступного объема PIC16F84A. Критика приветствуется. В будущем планируется добавление динамической очереди задач для избавления от приставки «псевдо» перед ОС.


Читать дальше

Наброски клавиатурного контроллера

Я, как и в прошлый раз, многословен и не лаконичен.
Навеяно 2 темами с главной страницы сайта easyelectronics.ru/soprocessor-vvoda-vyvoda.html
и easyelectronics.ru/otladochnyj-pult.html
Решил я себе забацать этакий клавиатурный контроллер. Основная его задача, это опрос матрицы кнопок, отображение набраного на экране (HD44780), и отсылка по какому-нибудь простому протоколу (пока взял UART). Есть планы по его применению (блок ввода пароля простой сигнализация для дома).


Читать дальше

Обзор отладочной платы M16/32 STK

Сразу прошу прощения, не обладаю сестрой таланта, так что будет много букв.
Будут целые фразы не моего авторства, но ссылки я даю, так что вроде обид быть не должно.


Читать дальше