Ассемблер STM8

В процессе освоения STM-ок, мне очень не хватало описания ассемблера от них. Речь идёт не о мнемониках инструкций вычислительного ядра микроконтроллеров, а о принципах построения ассемблерных программ в STVD. После ассемблера ядра AVR, в STM-ном ассемблере для меня всё выглядело до безобразия нелогично. Какое-то время даже хотелось написать свой ассемблер :) Теперь я постараюсь облегчить забег по граблям тем, кто будет осваивать ассемблер для STM8.

Читать дальше
  • +5
  • 26 января 2012, 20:17
  • Deer

Почему я не спешу продолжать разговор о растактовке выполнения инструкций вычислительным ядром STM8

Давно тому назад я хотел начать разговор о сабже. На тот момент осциллограф у меня был в ремонте, и я был вооружён лишь частотомером. С возвращением осциллографа, я думал, что всё станет яснее. Как вы уже догадались, не стало! :)

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

Читать дальше
  • +1
  • 14 января 2012, 16:24
  • Deer

VFD дисплей GP1183A01B от Futaba

Давно мне хотелось пощупать руками VFD-дисплейчики. Всё, знаете ли, манили своей красотой. Но как-то под руку не попадались. А тут увидел в на сайте Мега-Электроники, что в наличии есть несколько штук разных видов. Отобрал самый дешёвый, полез в интернет искать справочные данные на него. Найденный даташит прилагаю к статье.

Дисплейчик этот меня покорил ещё на стадии чтения даташита, поэтому как только появилась денежка, я его сразу себе выписал. Итак, основные характеристики:
Габаритные размеры: 80x36x12 мм
Размеры дисплея: 48x11 мм (в даташите указано 52x11. Это по ширине анодов. А по полю катодов более 48 мм я намерить так и не смог :) 112x16 точек.
Зелёного цвета свечения
Диапазон рабочих температур: -40 — +85 °C
Напряжение питания: 5В. Анодное и накальное напряжение из 5 вольт дисплейчик получает самостоятельно
Поддержка 19 различных кодовых страниц. В том числе Codepage 866 (ту самую, которая широко используется в DOS-ах)

Вид индикатора с лицевой и обратной стороны: (картинки кликабельны)
Лицевая сторонаОбратная сторона


Читать дальше
  • +2
  • 19 ноября 2011, 20:09
  • Deer
  • 1

Продолжаем тему дурацких вопросов. Моторчик от HDD

Bonsoir, mes chers camarades!
А вот кто-нибудь пытался использовать двигатель от HDD в качестве генератора? Есть у меня мысль использовать в одной конструкции для питания сабж, но т.к. руки не доходят найти специфичную отвёртку или прецезионной кувалдой раздолбать сдохший HDD, подаренный мне для опытов, пока что остаётся только попытаться поискать ответа у товарищей по интересам.

√ Реально ли снять с движка в режиме генератора 0,5-1 Вт полезной мощности? Кто-нибудь пробовал?
√ Если на первый вопрос ответ есть положительный, то второй вопрос будет про обороты вала
  • 0
  • 27 августа 2011, 23:48
  • Deer

Китайская кнопка для звонка

Понадобилась мне для одного девайса Большая красная кнопка. Ну, раз такое дело, сходил в магазин да купил самую красную из дешёвых. Вот её общий вид:
Кнопка звонковая. Общий вид
Конструкция же кнопки оказалась весьма и весьма аскетичной.


Читать дальше
  • 0
  • 11 августа 2011, 00:49
  • Deer

Поговорим о растактовке исполнения команд в вычислительном ядре STM8

Занялся я тут экспериментами в области выяснения времени выполнения команд ядром STM8. Мой мозг уже на грани взрыва! Что-то проясняется, что-то становится только непонятнее.

Задача у нас пока что простая до безобразия: в цикле передёргивать ножку со светодиодом.
loop:
 bcpl PC_ODR,#7
 jpf loop

Выполняется за 3 такта. Если допустить, что BCPL выполняется за 1 такт, а JPF — за 2, то всё логично. Подтверждается следующим кодом:
loop:
 nop
 bcpl PC_ODR,#7
 jpf loop

Выполняется за 4 такта. А вот дальше начинаются не совсем логичные вещи.


Читать дальше
  • +7
  • 13 июля 2011, 22:19
  • Deer

Мой аццкий отжиг :)))

Хотел я было залудить железяку одну, да перестарался слегка с нагревом. В итоге у меня загорелся сам припой!..



И вот такая красота получается в ходе реакции:
Итоговый продукт реакции горения припоя
  • 0
  • 07 июля 2011, 18:28
  • Deer

А какой есть хороший ассемблер под Z80?

Сабж

Хочу я на основе полуживого Пентагона сделать девайс один, заодно поиграться с железками этими. И первые грабли — найти ассемблер для Z80. Чувствую, впереди ещё бОльшие грабли! :))

И где бы найти толковое описание системы команд оного?
  • 0
  • 29 июня 2011, 21:06
  • Deer

Пара галетных переключателей

Лежат у меня в столе несколько сабжей. Думаю, кому-нибудь окажется небесполезно или интересно узнать о существовании подобных и ныне выпускаемых.

RCL371-1-8-2
Переключатель имеет два положения, коммутирует 30 В 0,5 А.
8 групп из одного подвижного и двух неподвижных контактов расположенных на одном «этаже».


Читать дальше
  • 0
  • 23 июня 2011, 20:20
  • Deer

Похвастушки. Первая программа под STM8

После небольшой войны с ассемблером, добил-таки его и написал первую программу. Так же как в своё время это было для AVR, первая программа плавно переключает несколько светодиодов. Разумеется, не используя аппаратных таймеров, ШИМов и прочих радостей жизни, ибо я только-только начал ковырять STM-ки.



Что понравилось в ассемблере STM (сравнивать могу с AVR и с i8085)
+ Команды передачи данных между памятью и портами. Один MOV на все случаи жизни, не касающиеся регистров и один лишь LD для всего, что касается регистров
+ Обилие команд работы с отдельными битами (BSET и BRES, аналогичные SBI и CBI в AVR соответственно и BCPL — переключающий бит в противоположное состояние). При том, в отличие от AVR, работать должно во всём адресном пространстве: и в RAM, и в портах ввода-вывода, и в EEPROM, разве что во флеше поиграться затруднительно :)
+ Команды передачи управления в целом похожи на команды в AVR. Опять же в ряде задач, наверное, удобно делать переход по значению одного бита в любом порту ввода-вывода
Что не понравилось:
— После AVR, кажется больно мало регистров (аккумулятор да две индексные пары, ну и PC с SP ещё). Впрочем, при лёгкости обращения к RAM и портам, наверное, просто требует привычки
— Перенос содержимого двух байтов RAM в индексную регистровую пару требует некоторых плясок с бубном
— АЛУ, как и в любой аккумуляторной машине, жить не может без этого аккумулятора. Вносит особенности при необходимости кучи вычислений. Кажется, что многобайтовую арифметику на AVR делать несколько проще и удобнее будет

И ассемблер, да и всю STVD, видимо, писали впопыхах. В AVR Studio работать намного комфортнее, IMHO, конечно

ЗЫЖ Код программы выкладывать не хочу, ибо у меня потом уши сгорят от такой его кривизны :) Да и практическая польза его стремится к нулю в любом случае
  • +1
  • 19 июня 2011, 20:37
  • Deer