Библиотека для дисплея на SSD1306 для STM8S

Заказал я себе интереса спортивного ради с ебея крошечный OLED-дисплейчик.
Порывшись в сетях, нашел кой-какую информацию, но мне хотелось сделать библиотеку «под себя», с привычными еще со времен Нокиа-3310 функциями.
Вот результат:
Изображение - savepic.net — сервис хранения изображений


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

Шаблоны проектов IAR для STM8S/STM8L SPL


Честно говоря запарился я на каждый проект перетаскивать исходники, настраивать пути, прописывать хедеры и прочее прочее. И наконец-то созрел сделать себе нормальные шаблоны. Лучше ведь поздно чем никогда, верно?

И для того чтобы не забыть, что и где я правил в оригинальной библиотеке, да и чтобы где-то забэкапить результаты своих трудов решил написать эту заметку. Ну а если кому-то это поможет сэкономить время — буду только рад =)

Для создания шаблонов использовался IAR 1.42.3, и библиотеки STM8S SPL v2.2.0, STM8L51x SPL v1.6.1.



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

Библиотеки и вы

Проголосовало: 113 | Воздержалось: 12

Любопытства пост. Знаю что это тема постоянных холиваров, но просто интересно поглядеть статистику о том, кто какой стиль работы предпочитает. Речь идет о библиотеках для облегчения работы с периферией внутри мк, которые как правило любезно предоставляются производителем.

Инициализация периферии с помощью именованных аргументов

В статье речь пойдет о реализации способа работы c периферией микроконтроллера с помощью именованных аргументов функций Си. Способ разобран на примере реализации функции конфигурации таймера TIM4 семейства STM8L.

Вообще, существует 2 типа передачи параметров внутрь функции или программного модуля: позиционный или именной. Так например, обычные функции в Си используют позиционную передачу, т.е. мы должны знать что и в каком порядке передавать функции. Использование именованных аргументов же гарантирует, что мы присвоим нужные значения куда положено, да и освободим себя от необходимости помнить какой параметр за каким следует. Ну вообщем, на дальнейшем примере это станет понятно.


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

Программный таймер. Применение HAL

Сначала небольшая предыстория. Пользовался я раньше, значит, только прAVRославными контроллерами, да команды им посылал исключительно на богоугодном ассемблере. Все бы хорошо, но с портируемостью у асма, как известно, есть проблемы. В большинстве случаев, перенос какого-то куска интеллектуального труда с одного камня на другой подразумевал написание с нуля этого самого куска, но в реалиях периферии текущего мк. Вроде бы и несложно, да и обычно не особо напряжно, но как всегда есть НО. Проснулся интерес у меня к STMовским камням — обилие вкусной периферии плюс интересные цены прельщали (речь идет о STM8 и STM32). Вот тут-то я и задумался о том, что тут пора вспоминать С, да и изобретать свои велосипеды кроссплатформенно. Ибо каждый раз переписывать какое-нибудь типовое программное решение под другую архитектуру или модель контроллера, возможно и полезно с точки зрения тренировки и оптимизации, но грустно с точки зрения потраченного времени и сил. Такие вот дела.

А начал я, как следует из заголовка, с самого простого и необходимого модуля — программных таймеров.


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

Программные задержки для STM8

Доброго здравия, All.

Ковыряю STM8 контроллеры, и часто сталкиваюсь с тем, что нет каких-то мелочей, к которым привык. На этот раз такой мелочью стали программные задержки. Например, в AVR-LibC была для этого delay.h.

Её-то я «интерфейс» я и повторил под осваиваемого зверька. Можно спорить об актуальности программных задержек, но бывает, что всё же нет альтернативы. Например — это часто проще, чем возиться с таймером. Или когда требуется формировать короткие промежутки времени: вход и выход из прерывания требуют довольно большого количества тактов, а значит — просто не успеем. Есть ещё фактор: когда время входа в прерывание плохо предсказуемо, и требует особого внимания.

Собственно, файл брать здесь.
27.11.2014 Не упомянул компилятор, для какого тестировал — COSMIC. Зато теперь работает и для SDCC.

Оболочка для прошивки готовых устройств через внешние консольные программы

Возникла потребность на работе прошивать партии разных устройств: одни такие, другие сякие. То железо чуть отличается, то код должен работать несколько иначе. Вариантов в итоге куча.
Поначалу прошивал из всяких авр студий, но ясно дело, что неудобно. Потом появилась авр студия 5.1 с первыйм cli в виде atprogram.exe. Я мог делать bat-файлы типа таких:
atprogram -t %4 -d %5 -i isp -cl 100khz write -fs --values %3
atprogram -t %4 -d %5 -i isp -cl 1250khz chiperase
atprogram -t %4 -d %5 -i isp -cl 1250khz program -fl -f %1
atprogram -t %4 -d %5 -i isp -cl 1250khz verify -fl -f %1
atprogram -t %4 -d %5 -i isp -cl 1250khz program -ee -f %2
atprogram -t %4 -d %5 -i isp -cl 1250khz verify -ee -f %2

Хватало какое-то время, но появились другие потребности: например, обновить в авр флеш, не трогая еепром (требуется изменить фьюзы, стереть, прошить, вернуть фьюзы). Или сгенерировать серийный номер внешней утилитой и зашить в еепром. Или ещё что.
А ещё проблема в том, что если какой-то этап не выполнен, то остальные выполнять не нужно. Но bat-файлу это не расскажешь.

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

Программный USB на микроконтроллерах STM8 (Часть 2)

Продолжаем описание программного USB на базе микроконтроллеров STM8 (первая часть читать).

Сегодня расскажу о коде приемника и о первом включении устройства:

image



Читать дальше
  • +10
  • 22 февраля 2014, 17:28
  • ZiB
  • 1

Датчик давления BMP085

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


Читать дальше
  • +6
  • 01 февраля 2014, 11:17
  • ftp27

"Wi-Fi" на модулях NRF24L01

Собственно, от вайфая здесь только частота рабочая. Продолжая вялотекущие изыскания по удобному объединению датчиков и исполнительных устройств в пределах дома, после проводов добрался и до беспроводки.
Городить очередной адаптер для домашнего сервера не хотелось и возник вопрос — а может скрестить nrf24 и сеть проводную/беспроводную вполне стандартную? Т.е. ethernet.


Читать дальше
  • 0
  • 24 декабря 2013, 19:48
  • artko
  • 2