Часы на STM8L-Discovery и OSA

Данная статья — результат моих попыток поработать с кооперативной RTOS OSA на STM8L.
Так как просто мигать светодиодом под ОСью уж совсем примитив, неоднократно описанный в интернетах, для себя я решил начинать знакомство с OSA на проекте, более-менее приближенном к реальности. Первое, что пришло в голову, так сказать, в лучших традициях DIY — запилить часы. Тем более все необходимое на STM8L-Discovery есть — RTC с часовым кварцем, LCD и даже кнопка! Статья будет полезна тем, кто решит опробовать свои силы в освоении OSA или просто хочет переделать Discovery на часы :)
Подробности под катом...


Читать дальше
  • +5
  • 24 января 2013, 15:39
  • ARMag
  • 1

Очередной проводной "велосипед" для датчиков дома/квартиры

Озадачился малой домашней автоматизацией/управлением. Поиски что уже есть показали беспроводные (Zwave, и т.п.), проводные решения (Ethernet, 1-wire и подобное). Беспроводка — дорого, Ethernet — тоже неслабо стоит за каждое устройство. Ну, соответственно, захотелось изобрести собственные костыли.



Читать дальше
  • +3
  • 20 января 2013, 00:09
  • artko
  • 2

UART загрузчика для STM8S103F3 топик-ссылка

Писать в 2 места чревато ошибками, по этому только ссылка на статью с целью обратной связи. Кто протестирует - буду рад услышать результаты. Кто просто имеет идеи - тоже не возбраняется к высказыванию. Кратко: Загрузчик для STM8S*03F3 работает по UART с терминалом. Принимает файлы формата Intel HEX. Находиться в старших адресах памяти и не требует специальной сборки целевой прошивки (<= 7кБ исключая последний 1кБ Flash-памяти). Написано на ASM в STVD, проект полностью открытый.

Включаем подтяжку на неиспользуемых пинах с помощью макросов (STM8)

Началось все с того, что надоело прописывать вручную такие вещи:


PA_CR1 = (1 << 0) | (1 << 1) |(0 << 2) | (0 << 3) | (0 << 4) | (1 << 5) | (1 << 6) | (1 << 7)
//И так далее для всех портов


Накидал простенький файлик, который в зависимости от дефайнов включает на неиспользуемых пинах подтяжку.


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

Пишем буферизованный ввод-вывод с испоьзование планировщика ОС.

В моём первом посте про самопальную litenkjerne я обещал сделать буферизованный ввод-вывод в UART. Собственно, под Новый Год выполняю обещанное. Да, на этом примере можно реализовать и всё остальное, скажем, ADC/DAC, SPI, I2C и прочее.


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

8L-Курс, Часть 2 - GPIO

← Часть 1 — Hello светодиод! Содержание Часть 3 — Прерывания →
В прошлой части мы запустили мигалку светодиодом. Теперь пришла пора разобраться с тем, как она работает и как устроен модуль GPIO в STM8.



Читать дальше
  • +4
  • 16 декабря 2012, 18:34
  • dcoder
  • 1

8L-Курс, Содержание

Тут, для удобства навигации, будет список статей из моего STM8L-курса. С кратким описанием каждой

● Часть 0 (ревизия дваноль) — Начало
Общие сведения о STM8 и STM8L

● Часть 1 — Hello светодиод!
Подключение отладчика, установка и настройка IAR, создание проекта-мигалки, прошивка через ST-Link и бутлоадер.

● Часть 2 — GPIO
Характеристики пинов, регистры GPIO. Простенький пример с семисегментным индикатором.

● Часть 3 — Прерывания
Механизм работы прерываний в STM8, приоритеты прерываний. Организация внешних прерываний. Activation Level

● Часть 4 — Тактирование
Устройство системы тактирование в STM8. Источники тактового сигнала. CSS. CCO. Калибровка.

● Часть 5 — Таймеры: начало
Базовые сведения об устройстве таймеров. На примере TIM1

Список будет пополняться по мере публикации новых частей и ослабления приступов лени у аффтара. Комментарии отключены ради высшей справедливости — увидевшие в тексте непотребство да напишут в ЛС.

8L-Курс, Часть 1 - Hello светодиод!

← Часть 0 — Начало Содержание Часть 2 — GPIO →

Внимание!
Если вы читали статью про STM8L-модуль, а конкретно часть про быстрый старт, то вы увидите здесь кучу знакомого текста и читать вам будет немного скучно. И не говорите потом, что вас не предупреждали.

В прошлой части у нас был обзор и немного теории (надеюсь достаточно для того, чтобы понять что вообще происходит), а в этой будет практика. Мы разберемся с подключением и прошивкой МК, поставим и настроим IAR, напишем в нем простенькую мигалку светодиодом и запустим ее.

Кроме того, в этой части я хочу учинить жестокую расправу над неопределенностями: у нас есть три варианта железа: одинокая STM8L-Discovery с отладчиком, PINBOARD2+STM8L модуль (без отладчика, но с бутлоадером) или discovery + PINBOARD2. Я все устройства и примеры буду собирать на пинборде, но для тех, кто пользуется другой железкой, оставлю для каждого примера схему, чтобы можно было собрать на чем угодно.


Читать дальше
  • +7
  • 11 декабря 2012, 16:56
  • dcoder
  • 1

8L-Курс, Часть 0 (ревизия дваноль) - Начало

Содержание Часть 1 — Hello, светодиод →

True story, bro
Середина октября, понедельник, пол-пятого утра. Сижу, жую печеньки, ни о чем плохом не думаю, переписываюсь с девушкой в этом вашем вконтактике. Неожиданно в аську кто-то стучится и спрашивает про учебный курс по STM8. Я, честно говоря думал, что про сию затею все благополучно забыли за год. Оказалось, что нифига подобного: настоящие анонимусы не прощают и не забывают. Да и модуль STM8L для пинборды уже поступил в продажу: тут статьи были-бы как-раз в тему. В общем, начинаю продолжать писать свой несчастный курс.


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

Конфигурация таймеров - расчет

Конфигурируя таймер, в большинстве случаев нужно посчитать предделитель и значение регистра ARR. Считается это не сложно, но тем не менее 5-10 драгоценных минут надо потратить. Кроме того, так как оба эти значения зависят от частоты, поменял частоту – пересчитывай опять.
Да и выглядит инициализация с такими магическими числами не сильно наглядно.

Вобщем мне это надоело и я написал пару макросов, которые атоматом считают значения прескейлера и ARR для 8-ми битных таймеров у которых предделитель может принимать значения, равные степеням 2-ки:


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