Управление светодиодной лентой на WS2812B с STM32F10x

Про подключение светодиодных лент на WS2812B к STM32 написано немало статей. Наиболее правильный вариант, с моей точки зрения, описан в статье на Хабре, однако у него есть ряд недостатков:

  • Новичку трудно в нем разобраться
  • Неэкономно расходуется память, что позволено STM32F4 — не позволено STM32F10x

Оба этих недостатка я попытался устранить в своей библиотеке stm32f10x-ws2812b-lib.

Библиотека написана с использованием Standard Peripheral Library и использует Half-Transfer Interrupt для заполнения буффера DMA. Использовать ее довольно просто:

#include "ws2812b.h"

#define NUM_LEDS    300

RGB_t leds[NUM_LEDS];

int main() {
    ws2812b_Init();

    while (1) {
        while (!ws2812b_IsReady()); // wait

        // Заполнить RGB-буффер

        ws2812b_SendRGB(leds, NUM_LEDS);
    }
}

При использовании цветового пространства HSV код будет аналогичный:

#include "ws2812b.h"

#define NUM_LEDS    300

HSV_t leds[NUM_LEDS];

int main() {
    ws2812b_Init();

    while (1) {
        while (!ws2812b_IsReady()); // wait

        // Заполнить HSV-буффер

        ws2812b_SendHSV(leds, NUM_LEDS);
    }
}

Все настройки каналов таймера, DMA и т.п. вынесены в отдельный заголовочный файл ws2812b_conf.h, думаю разобраться в нем не составить большого труда.

Комментарии (253)

RSS свернуть / развернуть
Проверил. Работает :)
0
тратить 256 байт памяти (а точнее по 256 байт и sram и flash, там const должен быть, а не static) чтобы посчитать возведение в квадрат через таблицу — варварство.

inline uint8_t LEDGamma(uint8_t b){ return (b*b)>>8; }
+3
  • avatar
  • _pv
  • 02 июля 2015, 13:11
Про const совсем забыл, спасибо за замечание.

Вычислять vs табличное значение — вечная тема для дискуссий, видимо, лучше будет тоже дать возможность настраивать в конфиге.
0
Какой смысл такую простую функцию задавать таблично? Это же весь такой производительный и модный STM!

Скажем, на межке вычислить "(b*b)>>8" — это ровно 2 такта.
0
Есть несколько моментов:
1) Некоторые рекомендуют использовать не квадрат, а возводить во степень 2.5 — с их точки зрения в этом случае «визуально» выглядит лучше. Их право в общем-то, с таблицей этот вариант легче реализуется.
2) (255*255)>>8 = 254 — неаккуратненько как-то :)
0
Скорректировать на единичку — тоже копейки, но степень — это да, существенно :)
0
для ^2.5 будет еще пара умножений.
про "Неэкономно расходуется память, что позволено STM32F4 — не позволено STM32F10x" никто вас за язык не тянул.
2) (b*b+b))>>8
0
про «Неэкономно расходуется память, что позволено STM32F4 — не позволено STM32F10x» никто вас за язык не тянул.
Все-таки 256 байт на всю таблицу, и по 48 байт на каждый диод ленты — несколько разные объемы.
0
да, но у Вас-то буфер всего 60 байт который по ходу заполняется, и тут еще 256 на таблицу.
ну и дефайны лучше в одно место все убрать

inline uint8_t LEDGamma(uint8_t v){
#ifdef WS2812B_USE_GAMMA_CORRECTION
#ifdef WS2812B_USE_PRECALCULATED_GAMMA_TABLE
return (v * v + v) >> 8;
#else
return LEDGamma_Table[v];
#else
return v;
#endif
}

тогда в коде их не будет

uint8_t r = LEDGamma(rgb->r);
uint8_t b = LEDGamma(rgb->b);
uint8_t g = LEDGamma(rgb->g);
uint8_t mask = 0x80;
for (i = 0; i < 8; i++){
pwm->r[i] = (r & mask)? WS2812B_PULSE_HIGH: WS2812B_PULSE_LOW;
pwm->g[i] = (g & mask)? WS2812B_PULSE_HIGH: WS2812B_PULSE_LOW;
pwm->b[i] = (b & mask)? WS2812B_PULSE_HIGH: WS2812B_PULSE_LOW;
mask >>= 1;
}
и далеко не все МК умеют делать сдвиг на произвольное число разрядов, компилятор вряд ли сам догадается и будет двигать эту несчастную единицу каждый раз сколько сказали.
0
да, но у Вас-то буфер всего 60 байт который по ходу заполняется, и тут еще 256 на таблицу.
ну и дефайны лучше в одно место все убрать
60*48 байт все-таки
за остальные подсказки спасибо
0
Очевидно смысл — следование отстаиваемому вами принципу «библиотеки долой, пишем свой велосипед» из параллельной ветки.
Это неизбежная плата в «борьбе за оптимальность».
0
Причём тут вообще библиотеки и велосипеды?
0
Это же весь такой производительный и модный STM!

Коллега, если не секрет, а за что конкретно вы так не любите ARM (и STM32 в частности)?
0
Убогий, кривая архитектура, кривой набор команд, кривой ассемблер, при этом расползается повсюду как чума.
-1
Хотелось бы конкретики, что не так с архитектурой, набором команд …?

Мне наоборот кажется, что они выигрывают у Меги за счет фоннеймоновской архитектуры…
0
Фон-нейман — удобно, но не критично. В целом, обе приемлемые.

Это можно долго писать, я даже не знаю с какой стороны хвататься. Просто нормальные архитектуры МК — AVR, PIC etc. сделаны специально как МК, с любовью и старанием.

Скажем, нужно включить битик в регистре I/O — вот пожалуйста, инструкция SBI. В STM — костыль битбэндинг. Вместо одной удобной командочки — требуется длинная портянка, которая что-то записывает по каким-то магическим адресам. Сделали, называется — нате, жрите.
Тоже самое если нужно загрузить константу в регистр, считать/записать слово — начинаются огороды на каждый чих. Как этим всем пользоваться?
Да и вообще: медленные прерывания, медленный вызов функций, невнятные тайминги инструкций и т.д.

С межками когда работаешь — чувствуешь, что разработчики думали и старались. Взять, хотя бы умножитель, в котором есть: mul, muls, mulsu, fmul, fmuls, fmulsu. Последние три — аппаратная поддержка фиксированной точки. Скажем, умножение q15 -> q31 выполняется всего за 19 тактов (пример использования можно посмотреть в библиотеке FFT от Эльм-чана). Такой набор по-моему вообще уникален, я не знаю больше ни одного процессора со столь функциональным умножителем.
Для сравнения — в CM0 всего одна инструкция умножения, которая не возвращает старшую часть. Разработчики не учились в начальной школе и не знают что при умножении в столбик длина результат равна сумме длин множителей? И как с фиксированной точкой работать?

Ассемблер армовский — то приёмник идёт за источником, то источник за приёмником. И откуда вообще эта дурь путать местами источник и приёмник? Мы ведь пишем «a = 2», а не «2 = a», когда хотим присвоить! Такое чувство, что какие-то пофигисты-дилетанты всё придумывали.
Дурацкий синтаксис вида «LDR.N R0, [PC, #0x20]». Почему нельзя по-человечески написать «LD R0, [PC+0x20]»?
Я не помню всего, что встречалось. Просто на каждом шагу хочется плеваться.

Межкин ассемблер приятный и продуманный. Имена инструкций лаконичные, без всякого мусора. Синтаксис логичный. Посмотреть, скажем, на работу с дробными числами: «LDIW A, Q15(0.5)» (A — регистровая пара R17:R16 у меня).

STM — в принципе хамская контора. Надоело выпускать какую-то микросхему — просто взяли и удалили все упоминания с сайта. Говорите, коммерческая фирма и делают что хотят? Ок, но и я тогда с полным правом буду называть их мудаками и посылать нахъ.
Атмел, для сравнения, когда снимает чип с производства — во-первых, не удаляет документацию с сайта, во-вторых, пишет документ с отличиями и рекомендациями по переходу (!).

Про периферию STM тоже с помпой пишут (обычно применяется слово фарш).
Покажите STM, у которого есть PLL на 64 МГц? Биполярный АЦП с усилителем? Таймер, по функциональности не уступающий TC1 в 261-й тиньке? Да даже сраного компаратора не запихнули.

Десктопные/мобильные армы — тоже убожество.
-1
Скажем, нужно включить битик в регистре I/O — вот пожалуйста, инструкция SBI. В STM — костыль битбэндинг. Вместо одной удобной командочки — требуется длинная портянка, которая что-то записывает по каким-то магическим адресам. Сделали, называется — нате, жрите.
Тоже самое если нужно загрузить константу в регистр, считать/записать слово — начинаются огороды на каждый чих. Как этим всем пользоваться?

Писать на Си =)
+4
Фон-нейман — удобно

Очень удобною, особенно если мы говорим о С. Основные мои претензии к AVR (если не считать политику ATMEL в. ч. и ценовую) именно к гарвардской архитектуре.

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

Зато этот подход масштабируется (замапленные на память регистры периферии, битбэндинг и т. д.) а SBI в его текущей реализации – это некий немасштабируемый частный случай (работает с младшими 32 регистрами). Да и языки программирования уровня С запросто скрывают эти особенности.

Да и вообще: медленные прерывания, медленный вызов функций, невнятные тайминги инструкций и т.д

Касательно прерываний не понял (механизм управления прерываниями в ARM намного богаче), касательно тайминга – да, нельзя полагаться на фиксированное время выполнения инструкции. Тут не поспоришь. С другой стороны ориентироваться на фиксированный тиамин инструкций – не лучшая идея в программировании критических к таймингам задач.

С межками когда работаешь — чувствуешь, что разработчики думали и старались.
В Thumb 2 вариантов умножения более 20 инструкций. В М0 сильно порезали оставили талька MULS, но там 32 разряда.
Ассемблер армовский
Не вижу смысла особо спорить касательно мнемоник ассемблера. Мне он тоже поначалу казался странным (особенно B, BL) потом привык. Я (как, подозреваю и вы) очень редко на нем пишу, чаще читаю при глубокой отладке.

STM — в принципе хамская контора.

Да, бывает, я тоже с этим сталкивался. Ну, ИМХО, ATMEL уж точно не лучше.

Про периферию STM тоже с помпой пишут

ИМХО, достаточно сбалансированная там периферия. Касательно частных случаев (уровня: там нет 50-и канального DAC, а он мне так нужен) – всем не угодишь.

Я не идеализирую ни ARM ни STM32. Но я не вижу ни одного повода вернуться с ARM назад на AVR (хотя я достаточно много работал с данной архитектурой, и для своего времени она была однозначно неплоха)
+5
если не считать политику ATMEL
За хорошую вещь не жалко заплатить.

а SBI в его текущей реализации – это некий немасштабируемый частный случай
Это нормальный случай для конкретного маленького процессора. То, что его нельзя перенести на большой процессор непосредственно — не оправдание для халтуры.

Касательно прерываний не понял
Они медленные. ЕМНИП 12 тактов на вход и 12 на выход.

В Thumb 2 вариантов умножения более 20 инструкций.
Эм. И? Я в отличие от разработчиков армов не считаю, что количество заменяет качество.

но там 32 разряда
Да хоть 33. Плохо сделанная вещь остаётся сделанной плохо.

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

Я (как, подозреваю и вы) очень редко на нем пишу, чаще читаю при глубокой отладке.
Ассемблер — всему голова. Если процессор нельзя нормально программировать на ассемблере, то он не нужен.

Касательно частных случаев (уровня: там нет 50-и канального DAC, а он мне так нужен)
50-канальный DAC — действительно что-то очень специфическое и редко нужное. Да и 5-канальный тоже.
А, скажем, таймер высокого разрешения — весьма полезная и универсальная вещь. Как и, скажем, мощные GPIO. Есть разница.

ARM/STM — типичная «современная» вещь, которую можно использовать для разработки такого же никчёмного коммерческого барахла, но добровольно пачкаться об неё никак не хочется.
0
За хорошую вещь не жалко заплатить.

Как кто-то метко заметил: «Я не вижу смысла переплачивать за более низкую производительность»

Это нормальный случай для конкретного маленького процессора.

Ага. 32 регистра хватит всем… ;)
ЕМНИП 12 тактов на вход и 12 на выход.

Откуда эти данные? И для какого процессора и какого режима? Явно не для (FIQ)

Я в отличие от разработчиков армов не считаю, что количество заменяет качество.

Ну, как говорят, ты первый начал, цитирую:
Взять, хотя бы умножитель, в котором есть: mul, muls, mulsu, fmul, fmuls, fmulsu.


Ассемблер — всему голова. Если процессор нельзя нормально программировать на ассемблере, то он не нужен.

Как правильно заметил выше 1essor1 , «Писать на Си =)». Нет, ну вот вы часто пишете на ассемблере? Вы действительно считайте актуальным обсуждение мнемоник?

ARM/STM — типичная «современная» вещь, которую можно использовать для разработки такого же никчёмного коммерческого барахла, но добровольно пачкаться об неё никак не хочется.

:) Ну да, «нормальные» программы, скомпилированные под ARM перестают работать. Только у AVR есть своя «тепловость» и «ламповость», без которой нельзя сделать нормальную «вещь»
+3
Как кто-то метко заметил: «Я не вижу смысла переплачивать за более низкую производительность»
Производительность здесь вообще не при чём! Это просто количественный параметр.

Откуда эти данные?
Из книжки про СТМ-ку.


Ну, как говорят, ты первый начал, цитирую:
Взять, хотя бы умножитель, в котором есть: mul, muls, mulsu, fmul, fmuls, fmulsu.
Не понял что имеется в виду.

Как правильно заметил выше 1essor1, «Писать на Си =)». Нет, ну вот вы часто пишете на ассемблере? Вы действительно считайте актуальным обсуждение мнемоник?
Ну, скажем так, пишу значительную часть из того, что пишу. Си хорош для обработки строк, разветвлённых алгоритмов и т.п. задач. Вычисления и обработку сигналов на Си писать крайне неудобно. Во-первых, кодогенератор выдаёт кривой код. Во-вторых — многие классные возможности в Си недоступны.
Но на самом деле это не важно. Фундамент важен для дома, даже если хозяин смотрит только на евроремонт внутри.

:) Ну да, «нормальные» программы, скомпилированные под ARM перестают работать.
Допустим, есть одна вещь, которая собрана на заводе и заверена военной приёмкой. И другая вещь, в которой клубки проводов, сопли и ардуйня. Пусть они вроде как делают одно и тоже. Но иметь хочется первую.
0
Из книжки про СТМ-ку

ОК, был был не прав, почему-то считал, что у кортекса есть режим аналогичный FIQ. Справедливости ради сохранение регистров в AVR будет тоже не бесплатным, плюс если говорить о ARM в общем – во многих архитектурах есть FIQ специально для минимизации задержки.

Допустим, есть одна вещь, которая собрана на заводе и заверена военной приёмкой. И другая вещь, в которой клубки проводов, сопли и ардуйня. Пусть они вроде как делают одно и тоже. Но иметь хочется первую.

Это не аргумент, это из области ваших личных убеждений.

Еще раз повторюсь, я не идеализирую ARM, не утверждаю что это самая лучшая архитектура и т. д. Но по суммарному набору параметров я не вижу аргументов в пользу AVR.
0
Справедливости ради сохранение регистров в AVR будет тоже не бесплатным
В AVR никто насильно не требует сохранять регистры. Можно просто выделить несколько регистров для прерываний. Есть тинька вообще без SRAM — там их и некуда пушить.

плюс если говорить о ARM в общем – во многих архитектурах есть FIQ специально для минимизации задержки
Я так понял по обсуждению, что это чемодан без ручки.
p.s.
Typically RTOS interrupt latency will be 500-1000 instructions. For Linux, it maybe 2000-10000 instructions.
OMFG, до чего дошёл прогресс…

Но по суммарному набору параметров я не вижу аргументов в пользу AVR.
Ну да. AVR — всего лишь профессионально и с душой сделанная вещь.
Кому это сейчас надо? Главное больше разрядов и мегагерцев.
0
И позаботились о профессиональном и с душой переносе кода. Не то, что некоторые: тупо взял и перенес на другой мк. А где творчество? Где поэзия? Один бездушный копипаст…
0
Emergency stop?
0
Ну да. AVR — всего лишь профессионально и с душой сделанная вещь.
Вообще-то, это студенческая поделка. Хотя, возможно, и сделанная с душой.
0
Вообще, всё хорошее создаётся энтузиастами. Торгашами только уничтожается и заменяется на говно.
0
Вообще, всё хорошее создаётся энтузиастами.
Тогда ARM это точно хорошее, поскольку разрабатывать риски(!) для десктопов(!) во время тотального засилия х86 могли только хардкорные энтузиасты своего дела.
0
Ну, 80-е годы вроде еще не были тотальным засильем винтела и шансы у других архитектур были.
0
Как раз к концу 80-х тотальное засилие интела (еще не винтела) уже вполне себе было. Сделать архитектуру на которой не работает ни одна имеющаяся на массовом рынке программа — подвиг.
0
Концу — возможно. Но армом занялись в начале 80-х — и ЕМНИП, тогда вполне плодотворно плодились другие ни с кем не совместимые компы, вроде тех же спекки и коммодоров.
0
P.S. Ну и опять же, программы — особенно игры — тогда между архитектурами портировались энергично. Даже написанный на асме Принц Персии где только не побывал.
0
Со спеками вы погорячились, они то как раз ориентировались на совместимость с интелом.
И с началом 80х тоже. это у нас в середине 80х все бурлило, а у них середина 70х.
0
Согласно вики, спекки вышел в 1982 году. Разработка арма началась в 1983.

А про ориентацию на совместимость расскажи подробнее. Да, я в курсе, что Z80 — весьма близок к 8080, но не полный аналог, да и в совместимости определенную роль играет и архитектура компьютера.
К тому же, я упоминал еще и коммодор. Вышел тогда же и проц имел совершенно с интелом не совместимый (хотя и родственный весьма популярному 6502).

Так что для меня разработка риска для десктопа в начале 80-х не выглядит столь авантюрной затеей, какой ее представляет evsi.
0
Дак википедия та же. Разработчик зилога работал в интеле, и делали бинарно совместимую версию. Правда на вики, странно, ничего не написано про конфликты, с этим связанные. Но там я уже деталей не помню.
0
Не-не, я не про зилог, а именно про спекки. Есть инфа, что спекки как комп закладывался на совместимость с интелом?
0
Не, ничего такого я не имел ввиду. Спеки создавались как игровая платформа «в каждый дом», а совместимость не более цем заложенная на процессор.
0
Есть инфа, что спекки как комп закладывался на совместимость с интелом?
А там не надо было какой-то особой совместимости. CP-M, как раз, хорош именно тем, что переносился на совместимый проц достаточно легко (нужен был только весьма небольшой и вполне себе отдельный кусочек ввода-вывода).
0
А разве интел в те времена делал (свои, самостоятельно) компы?
0
Да, а слона-то я и не приметил)
0
Согласно вики, спекки вышел в 1982 году. Разработка арма началась в 1983.
С учетом типичных на то время циклов разработки, спек начали делать в конце 70-х, не позже. И да, разработка арма началась давно, хотя проследить тенденции рынка можно было уже тогда. Так что разработка вполне могла быть прекращена или просто не продолжена после выхода первого чипа в кремнии, поскольку к этому моменту тенденции рынка были тем более прозрачны. А уж выпуск десктопа в 87-м, на фоне выхода PS/2 и первого компа на 386-м (компак его выпустил в самом конце 86-го) — что-то среднее между подвигом и наглостью. От полного пролета их спасло, как мне кажется, только сотрудничество с эпплом при работе над процом для ньютона.
Да, я в курсе, что Z80 — весьма близок к 8080, но не полный аналог, да и в совместимости определенную роль играет и архитектура компьютера.
Z80 надмножество 8080. То есть все, что писано для 8080 работает на Z80, но не наоборот. Из доступного тогда софта была готовая операционка — CP-M и некоторое количество софта для нее. Так что да, спек вполне можно считать претендующим на совместимость.
0
А уж выпуск десктопа в 87-м, на фоне выхода PS/2 и первого компа на 386-м (компак его выпустил в самом конце 86-го) — что-то среднее между подвигом и наглостью.
Это — да. Но, возможно, начав — уже не хотели бросать. Хотя да, это уже то самое «разрабатывать риски(!) для десктопов(!) во время тотального засилия х86 могли только хардкорные энтузиасты своего дела». Зато, в конце концов, оно все же оправдалось)
Из доступного тогда софта была готовая операционка — CP-M и некоторое количество софта для нее. Так что да, спек вполне можно считать претендующим на совместимость.
Ни разу не видел ее на спекки. Вроде по софту он так и варился в собственной кастрюльке.
0
Ни разу не видел ее на спекки. Вроде по софту он так и варился в собственной кастрюльке.
www.worldofspectrum.org/infoseekid.cgi?id=0023486
И вообще гугл на «zx spectrum cp/m» выдает очень много ссылок.
0
Год выпуска особенно интересен)
0
+3 спека 87 года поддерживала сп/м, более ранним требовался внешний дисковод. ATM Turbo имел сп/м в роме. Вообще это лучше на zx-pk народ помучать, когда и что там появилось.
0
Это год появления релиза, а не самой софтины. То, что народ запускает CP-M на спеках я был в курсе еще когда они были на пике популярности в совке (как раз конец 80-х).
+1
Ни разу не видел ее на спекки. Вроде по софту он так и варился в собственной кастрюльке.

CP/M запускалась на Spectrum +3, а это была достаточно экзотическая вещь. На популярных у нас клонах 48/128 CP/M не запускалась. Хотя были очень экзотические вариации, типа Кворум.
+1
Профи вполне себе умеет ср/м. И по слухам его расширенный видеорежим как раз для ср/м и делалася. Ну про атм-турбо уже сказали.
0
И с началом 80х тоже. это у нас в середине 80х все бурлило, а у них середина 70х.
Ну, вобщем, да. Бурление закончилось с появлением IBM PC. Что, вобщем, не удивительно, учитывая, что на тот момент IBM по сравнению с ближайшим конкурентом в этой области был примерно как слон против мыши. Я имею в виду вкладываемые ресурсы и имеющийся опыт.
0
IBM, конечно, был весьма крут, но вроде как раз вкладывать он не особо старался — так, боковой проект на выброс (и если исходить из предположения, что IBM PC взял свое за счет открытости — то вложи IBM больше ресурсов — и загнулся бы он точно так же, как конкуренты).
0
IBM, конечно, был весьма крут, но вроде как раз вкладывать он не особо старался
Ты не учитываешь размеров. То, что для IBM «не особо старался» и расходы на проект меньше, чем представительские для менеджмента (циферок не знаю, просто предположение), то для других контор предел мечтаний инвестиций в их проект.
(и если исходить из предположения, что IBM PC взял свое за счет открытости — то вложи IBM больше ресурсов — и загнулся бы он точно так же, как конкуренты).
История IBM полна провалов в проектах куда более дорогих, чем PC. Что не мешает им оставаться одной из крупнейших контор в этой области по сей день.
0
Первый арм в кремнии появился в 85-м, первый комп на нем — в 87-м.

P.S. игры это здорово и сейчас они вполне себе драйвер развития видеожелеза. но по тем временам драйвером развития компов был бизнес и только бизнес. именно поэтому довольно передовые для своего времени коммодоры и атари (да и спеки) заточенные под обучение-развлечение загнулись, а убогий IBM PC заточенный под бизнес — живет и здравствует по сей день.
+1
Первый арм в кремнии появился в 85-м, первый комп на нем — в 87-м.
Ну да, когда вышли результаты — было уже поздно. Но когда все это затевалось — оно еще не выглядело столь безнадежным.
0
Но когда все это затевалось — оно еще не выглядело столь безнадежным.
Посмотри на доли рынка в 83-м году. Коммодор, Эппл и IBM. Ни с чем из них арм не совместим.
0
А что ты скажешь про MIPS, которые примерно тогда же пилили свое, ни с чем не совместимое?
0
Он появился как исследовательская разработка (ключевая фишка — отсутствие перекрестных зависимостей в пайплайнах исполнения команд, что собственно отражено в названии — Microprocessor without Interlocked Pipeline Stages) и изначально не нацеливался куда-либо. Чуть позже они таки коммерциализировались, но сразу нацелились на рынок, на котором софт изначально был портируемый (unix workstations). К тому же этот рынок тогда только начал серьезно подниматься и места для новичков там было полно. Например, тот же Sun Microsystems появился в 82-м и первым продуктом была именно unix workstation.
0
Тогда ARM это точно хорошее
Не вижу логики.

Кому-то и трочиные процессоры не дают покоя. Это не значит, что в них есть что-то хорошее.
0
Не вижу логики.
Ну как же, все согласно вашему постулату:
Вообще, всё хорошее создаётся энтузиастами.
АРМ — отличная архитектура созданная энтузиастами. Оспорить это вам пока не удается, даже по вашему же критерию «создана энтузиастами».

Это не значит, что в них есть что-то хорошее.
Как вы определяете наличие чего-либо хорошего?
0
Ну как же, все согласно вашему постулату:
Всё хорошее создаётся энтузиастами — факт. Не каждый, кто назовёт себя энтузиастом — создаёт хорошее. См. диаграммы Эйлера.

В чём разница между человеком, который называет себя плохим и человеком, который называет себя хорошим? Если человек называет себя, допустим, националистом — скорее всего он такой и есть. Если называет себя учёным — может он и есть учёный, но чаще — шарлатан.

Как вы определяете наличие чего-либо хорошего?
Как ни странно, но наличию хорошего.
0
Как ни странно, но наличию хорошего.
Ну вот хорошее в наличие — арм вполне себе хорош для своего круга задач. Но вам он, почему-то, не нравится.
0
Ну вот хорошее в наличие — арм вполне себе хорош для своего круга задач. Но вам он, почему-то, не нравится.
Хорошего в нём только то, что пока ещё остались альтернативы.
0
Хорошего в нём только то, что пока ещё остались альтернативы.
Как минимум он хорош тем, что он и есть альтернатива. И только с его появлением в low-level сегменте унылое болото авр-ов, пиков и клонов 51-го, наконец-то, зашевелилось и перестало колотить понты запредельными порогами вхождения для энтузиастов.
+1
Я бы сказал, въехать в 8051 проще) За снижение порогов софт благодарить стоит, вроде той же ардуино.
Другое дело, что он дал толчок производительности МК и снял старые ограничения вроде 256 байт ОЗУ на 8051.
0
О да, запредельные пороги — изучить чуть-чуть схемотехники и программирования.

Мне когда попалась книжка про 8051 я просто офигел от того, насколько всё просто! До этого считал, что микропроцессорные устройство — страшные платы с кучей микросхем, и требуется прочитать несколько толстенных книжек для вхождения.

Если говорить про пороги, то стм с шагом ножек 0,5 мм — это куда более существенный порог.
0
О да, запредельные пороги — изучить чуть-чуть схемотехники и программирования.
Да-да, о стоимости средств разработки скромно умалчиваем, да?

Если говорить про пороги, то стм с шагом ножек 0,5 мм — это куда более существенный порог.
Для подавляющего большинства любителей это вообще не порог.
+1
Да-да, о стоимости средств разработки скромно умалчиваем, да?
А что там умалчивать? Приличного для вообще всех архитектур — AS4, кейл и иар. Первая только для AVR.

Для подавляющего большинства любителей это вообще не порог.
А что тогда порог?
0
А что там умалчивать? Приличного для вообще всех архитектур — AS4, кейл и иар. Первая только для AVR.
Сколько из них бесплатных (и когда бесплатные версии стали появляться)? Сколько стоят платы для разработчиков? Отладчики? Программаторы? Замечу, что важно не то, сколько они стоят сейчас, а то, сколько они стоили на момент массового выхода на рынок дешевых кортексов.
А что тогда порог?
Стоимость средств разработки, как не сложно догадаться.
0
Ну, для AVR и PIC со стоимостью средств разработки (в минимальном варианте) все очень неплохо, почему они свою популярность и завоевали.
Это сейчас уже, если сравнивать с кортексами и замахиваться на «я и отладчик хочу человеческий, и компилер полнофункциональный!» — то да, авры и пики смотрятся бледновато (на первые железо не найдешь халявное, на вторые софт), а тогда — взял бесплатный ассемблер, самопальный программатор и вперед!
0
Ну, для AVR и PIC со стоимостью средств разработки (в минимальном варианте) все очень неплохо, почему они свою популярность и завоевали.
Именно, что в минимальном варианте. И это «движение снизу», а не инициатива самих контор.
0
В чем-то спасибо стоит сказать и конторам. Хотя бы за документацию по протоколам и бинарному формату (что необходимо для создания сообществом своих тулзов — вон, dW так и не освоено на коленке из-за закрытости доков) и за бесплатные программные средства.
Ну а OCD-отладка — сравнительно недавнее достижение, в «докортексовские» времена на дешевых МК она обычно отсутствовала, так что и недоступность отладчика не играла роли.

Я бы в плане снижения порога скорее отметил появление упрощающих старт средств — тех же готовых к работе платок ардуино с простой средой программирования к ним, кучи доков в интернете и всего такого.
0
Да, безусловно ардуина сыграла свою роль, тут даже спорить глупо. Но все держалось больше на энтузиазме отдельных людей аж до пинка со стороны стм. Собственно, вся последовательность (в моем представлении) выглядит так — авры, пики и 51-е (ну и другие, типа того же renesis) долго жили сами по себе, типа low-end встраиваемых процов, куда никто особо не лез. Потом стали появляться арм-ы, но поначалу они жили в верхней части сегмента и не пересекались с мелочевкой. Кортексы от атмела и нхп мирно сосуществовали и действовали по тем же правилам — платы дорого, отладчики дорого, софт дорого. Потом появились ардуины и появился приток энтузиастов, но ситуация менялась медленно (и народу поначалу не много и сами конторы не сильно заинтересованы). Параллельно, кстати, развивался mbed который изначально ориентирован на нхп-шные чипы и потому значительно менее известен и популярен у нас. А потом на рынок вышел стм и первым делом опустил планку на платы и отладку. А заодно открыл сорсы на SPL. По времени это совпало с ростом популярности ардуин. Вот тут говна и забурлили по полной, поскольку остальные производители контроллеров вдруг осознали, что опаздывают с запрыгиванием в попсовый вагон, а в будущем это приведет к потере рынка. Вот с этого момента «платы в формате ардуины», встроенные отладчики на платах для разработчиков, урезанные бесплатные версии IDE и прочие ништяки пошли волной. Где-то так.
0
Ну, справедливости ради стоит заметить, что бесплатные IDE у микрочипа и атмела были давным-давно, платные они у третьих сторон. И урезанные бесплатные версии кейла и иара тоже не новость (с кайлом 2.х я ознакомился еще в инсте в 2005 году, где он заменял своим симулятором стенд с настоящим процем).
Тот софт, что сейчас бесплатен (GCC, Eclipse, etc) бесплатен был и тогда (кайло, кстати, тогда умело работать с собственной сборкой GCC — бесплатно, но вместо отладки кукиш).
Отладчики тоже особо дешевле не стали, если не считать китайских клонов со слетающими лицензиями
А вот бум голых демобордов с встроенными обрезками дебаггеров — это да, это STM) Ну и некоторые IDE дешевле стали — скажем, появился бесплатный CCS.
0
Тот софт, что сейчас бесплатен (GCC, Eclipse, etc) бесплатен был и тогда
Но поддержка армом гцц явление достаточно новое, да и я вижу насколько отличается гцц от кодсорсери (бывший стандартом для кортексов еще несколько лет назад) и нынешний.

P.S. еще одна существенная фишка стм-ов — загрузчики через уарт. это практически избавило от необходимости иметь программатор, что тоже достаточно существенно снизило порог вхождения.
0
0
паровоз надежная, грамотно созданный локомотив, не то что эти современные электровозы. Красиво, величественно, просто, кому хто сейчас надо? Главное скорость, экономичность, экологичность
+2
А по-русски можно изложить мысль?
0
Cortex-R4
0
Наблюдается легкое передергивание с вашей стороны. AVR ничего не сохраняет (кроме указателя команд) перед началом обработки прерывания. В обработчике для AVR прийдется руками сохранить регистры и руками же их восстановить, что потребует дополнительных тактов. Наконец, ARM-ы, как правило, имеют в разы более высокую тактовую. Так что по факту на армах прерывания более быстрые, чем на AVR.
0
AVR ничего не сохраняет (кроме указателя команд) перед началом обработки прерывания.
И это правильно. Может мне вообще не требуется ничего пушить. Или мне требуется всего 1-2 регистра для обработчика.
0
Или мне требуется всего 1-2 регистра для обработчика.
Замечательно. А теперь давайте считать: 4 такта на 16 мегагерцах (максимум для attiny/atmega) и 12 на 48 (минимум для кортексов) это одно и то же время. Так что когда вы рассказываете об «медленных прерываниях», вы просто передергиваете.

P.S. фраза об «покажите STM, у которого есть PLL на 64 МГц?» меня просто умилила. Вам 72МГц в F103/105/107 мало? Или вы не в курсе, что (раз уж можно 72), то можно и меньше, например 64?
+1
Вам 72МГц в F103/105/107 мало?
Я уже говорил. При такой постановке вопроса у меня i3, у которого 3.3 ГГц и к тому же 64 разряда. И нафиг мне сдались какие-то 72 МГц на 32 разрядах?
0
Сравнивать микроконтроллер с микропроцессором некошерно же, ну.
+1
А я сравниваю гигабайты и гигагерцы. И разряды.
Ведь всё остальное значения не имеет.
0
Угу. «Тут читаем, тут не читаем, тут рыбу заворачивали» (с) классика.
0
Я уже говорил.
Да, вы эту глупость уже говорили. Пожалуй из всего списка вопросов, которые возникают по поводу сказанной вами глупости я задам ровно один: вы вообще интересовались тем, сколько времени занимает вход в прерывание на вашем i3?
0
вы вообще интересовались тем, сколько времени занимает вход в прерывание на вашем i3?
Да, несколькими постами выше обращал на это внимание. Это печально.
0
А ведь вопрос-то был «нахрена арму отдельный плл для таймера, если он спокойно выдаст таймеру требуемый клок прямо с основной плл, и с хрена ли это хуже, чем АВР-овский костыль»…
+1
Да, несколькими постами выше обращал на это внимание. Это печально.
Ну и толку от этих гигагерцев на i3, если вход столько времени занимает? Нафига вы его вообще упомянули? Только ради того, что бы не признаться, что ляпнули глупость насчет медленных прерываний у кортексов?
0
Вот чес-слово, какой ещё ответ Вы ожидали услышать?
Очевидно же, что прерывания не для решения задач, а для установки флагов. А задачу надо выполнять вне прерываний, дабы не блокировать эти самые прерывания. А то вдруг при обработке одного преывания мы пропустим другое?
0
А ну да, у нас же нету настраиваемого приоритета прерываний. Жаль конечно, но что поделаешь.
0
Нет, ну вот вы часто пишете на ассемблере?
Такие странные люди есть даже на ARM-ах :DDDDD
0
Это нормальный случай для конкретного маленького процессора.
То есть Атмелу вы прощаете костыли, потому что его любите, а остальным не прощаете компромисы? И кто сказал, что одно «костыль», а другое «компромис»?
Если процессор нельзя нормально программировать на ассемблере, то он не нужен.
Совершенно верно, ассемблер не нужен! В этом-то и вся суть.
А, скажем, таймер высокого разрешения — весьма полезная и универсальная вещь.
СТМ позволяет каскадировать таймеры.
Как и, скажем, мощные GPIO.
Полевики положено подключать через драйвера, а не напрямую в выводу мк. Общие катоды/аноды тоже, а не костылить на авр с превышением допустимых токов выводов.

То, что вы чего-то не знаете или не хотите знать, это не вина кого-либо другого. Хватит перекладывать отсветственность с себя, на других.
+4
Совершенно верно, ассемблер не нужен!
В дальнейшем я буду игнорить обезьянничание в духе "- это яблоко моё!" "- да, оно моё!" и т.д. А ассемблер нужен.

СТМ позволяет каскадировать таймеры.
Зачем? И как это повысит разрешение по времени?

а не костылить на авр с превышением допустимых токов выводов
Почему костылить и почему с превышением? Весьма годные Plush-6A делали на восьмежках. Впрочем, сейчас перешли на 8051, где нагрузочная способность ещё лучше.

То, что вы чего-то не знаете или не хотите знать, это не вина кого-либо другого. Хватит перекладывать отсветственность с себя, на других.
Говори что не так. А рассуждения в духе «это передовые нанотехнологии и тебе они не по уму» буду тоже игнорить.
0
Зачем? И как это повысит разрешение по времени?
Тот же частотомер, один таймер считает «младшие 16 бит», второй «старшие 16 бит». Но конечно, если вам надо вызвать прерывание не через 1.000000001 сек, а не 1сек, то да, тут сдаюсь.
Можете смело комментировать данный пост: «костыль, старший/младший!».

Почему костылить и почему с превышением?
Питание 5В, красный индикатор, резисторы 300Ом в катоды и ОА на вывод МК. Вполне популярная картина для схемы на великой и могучей авр. Первый же линк вольтметр на тини предлагает 470-1.5к. Думаю вы в состоянии посчитать токи. А это, так вообще кладезь. 150Ом на сегмент, естественно в пределах 20ма на вывод. А разряды — да кому они нужны.

Говори что не так.
Для начала, вы рассматриваете задачи «помигать светодиодиком, на все про все времени 2 месяца», а не существующие реали. Продолжать смысла нет, ввиду того, что вы не уловили суть поста, к каторому дали комментарий.
0
Тот же частотомер, один таймер считает «младшие 16 бит», второй «старшие 16 бит».
Зачем это городить в железе? Если нужна повышенная разрядность — ничего страшного не случится если раз в минуту будет вызвано прерывание, которое обработает перенос.
Я имел в виду таймер высокого разрешения в тиньках, который тактируется от PLL. Позволяет реализовать быстрый ШИМ, точный замер временных промежутков и т.п.

Питание 5В, красный индикатор, резисторы 300Ом в катоды и ОА на вывод МК.
И причём тут это? Токи разрядов велики — берём и ставим ключ. В случае матрицы с высокой скважностью можно и токи сегментов поднять до 40 мА. Как раз для большинства светодиодов допустим импульсный ток, раза в 4 превышающий номинальный.

Для начала, вы рассматриваете задачи «помигать светодиодиком, на все про все времени 2 месяца»
Я рассматриваю процессоры с точки зрения того, сделаны они на совесть или халтурно. Продуманы тщательно или по принципу «тяп-ляп-жрите». Больше ничего.
0
Я имел в виду таймер высокого разрешения в тиньках, который тактируется от PLL. Позволяет реализовать быстрый ШИМ, точный замер временных промежутков и т.п.
У многих ARM'ов штатная тактовая выше, чем выход этой PLL, так что разрешающая способность будет не хуже.
В случае матрицы с высокой скважностью можно и токи сегментов поднять до 40 мА
Шины питания межки такого издевательства не оценят.
0
У многих ARM'ов штатная тактовая выше, чем выход этой PLL, так что разрешающая способность будет не хуже.
У моего i3 тактовая ещё выше. Так что в топку все армы.

Шины питания межки такого издевательства не оценят.
Для квадратных межек допускается до 400 мА.
0
У моего i3 тактовая ещё выше. Так что в топку все армы.
И межки туда же, ага.
+2
Я рассматриваю процессоры с точки зрения того, сделаны они на совесть или халтурно. Продуманы тщательно или по принципу «тяп-ляп-жрите». Больше ничего.
Я так и не пойму как ты оцениваешь «тщательность» или «тяп-ляпность». Притом делая такие радикальные, не, не так, РАДИКАЛЬНЫЕ выводы о том что какашка, а что нет. Или в даташитах уже пишут что-то типа:
2,6 accuracy per mm^2 или 1,8 khaltura per verilog module?
0
«тяп-ляп» — сделанное быстро.
«тщательно» — разрабатываемое 2 года.
0
Тщательно — разрабатываемое столько, сколько надо. Зато когда оно разработано, им можно пользоваться. В отличие от сделанного «быстро».
0
Тщательно — разрабатываемое столько, сколько надо. Зато когда оно разработано, им можно пользоваться.
Можно. Но уже никому не нужно. Остается только поставить на полочку, любоваться и гордиться своей крутизной.
В отличие от сделанного «быстро».
Не быстро, а вовремя. Именно тогда, когда было нужно.
+2
Можно. Но уже никому не нужно.
Угу. То-то выпускают одни бесполезные айфоны и планшеты. Зато каждую неделю.

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

Не обязательно лезть в верилоги, чтобы увидеть, что в ассемблере не сумели даже соблюсти стабильный порядок источника и получателя. Если на таком уровне всё тяп-ляп, значит в остальном явно не лучше.

Впрочем, насчёт схемотехники есть у мя догадки. Скажем, почему AVR весьма устойчивы к наводками? Полагаю, не просто так — скажем, в даташите можно видеть схемку входного буфера с синхронизатором. Наверняка хорошо думали над этим. В отличие.
0
Скажем, почему AVR весьма устойчивы к наводками?
А они устойчивы? Я слышал прямо противоположные отзывы. Хотя и не припомню уже, где.
0
Не обязательно лезть в верилоги, чтобы увидеть, что в ассемблере не сумели даже соблюсти стабильный порядок источника и получателя.
Вообще-то асм к самому процу имеет весьма опосредствованное отношение. И порядок источника и получателя определяется компилятором, а не процессором. Впрочем, зачем вам знания, если есть вера…

Наверняка хорошо думали над этим. В отличие.
Откуда выводы насчет «в отличие от»? Особенно учитывая то, что в ARM-ах порты тактируются (что поначалу весьма обращает на себя внимание), а следовательно там тоже есть тактируемая защелка.
+2
Вообще-то асм к самому процу имеет весьма опосредствованное отношение. И порядок источника и получателя определяется компилятором, а не процессором.
Какая блин разница? Если делаешь МК, сделай его так, чтобы им можно было пользоваться! Если компилятором, синтаксисом и т.д. пользоваться нельзя — выкинь и сделай своё. Или возьми нормальное.
0
Какая блин разница?
Хотя бы вот в этом:
Если компилятором, синтаксисом и т.д. пользоваться нельзя — выкинь и сделай своё.
Если вам не нравится синтакс ассемблера (кстати, которого именно?) напишите свой.
0
Если вам не нравится синтакс ассемблера (кстати, которого именно?) напишите свой.
Это должны сделать разработчики МК. Не выплюнуть железку по принципу «жрите как хотите», но и дать нормальные инструменты.
0
Стоит заметить, что как раз они прикупили Keil для разработки инструментов и помогают разработке GCC-ARM. А атмел выплюнул блокнот с отладчиком и ассемблер, а за пресловутый GCC-AVR спасибо следует сказать сообществу.
Впрочем, к некоторым более старым атмеловским МК книжки на полном серьезе рекомендовали командно-строчный компилятор от IAR и блокнотик. Эталонная забота о пользователях.
0
AS4 — вполне приличная IDE. Где I — от слова integrated, а не просто для понтов.
Особенно передовым всё равно не угодишь. Если программа по часу на каждое действие откликается, если код не раскрашен как новогодняя ёлка под LSD, всё будет мало.
0
Вот только мало толку от IDE, когда нет компилятора, а его атмел так и не сделали ни для MCS51, ни для AVR, ни для ARM.
Ну и честно говоря, времена IDE как именно интегрированной среды прошли лет 20 назад. Теперь под IDE понимается в первую очередь средство редактирования текста, а во встроенном в нее компиляторе нужды особой и нет. Так что AS4 — неплохой дебаггер для AVR, но не IDE.
0
Ну и честно говоря, времена IDE как именно интегрированной среды прошли лет 20 назад.
Вообще, много уничтожено за последние 20-50 лет. Создано мало.

IDE, в которой можно писать текст, отлаживать и симулировать и которая быстро работает — пусть не в моде, но главное — существует и работает.
0
Вот как раз текст в ней писать нельзя. Отлаживать и симулировать — можно, но это уже получается отладчик, а не иде.
Правда, следующим шагом атмел ухитрился выпустить иде, где можно писать, но нельзя отлаживать. Браво, чо.
0
Вот как раз текст в ней писать нельзя.
Зажрались просто.
0
Раз попробовав жить в доме — в пещеру уже не вернешься…
0
Была когда-то такая вещь как разумная достаточность.
Сейчас мало кто вспоминает. Чем больше в хоромах золотых унитазов, тем «лучше».
0
А ведь всего сотню лет назад разумной достаточностью считалось сбегать в сортир на улицу…
+1
И сейчас много где считается. Когда мы жили в домике мя это вообще нисколько не заботило.
Зато был участочек, которого сейчас очень нехватает попускать вертолётики…
0
раньше пускали бумажные самолетики. Вам этого не было достаточно?
+2
Нет
0
я под авр писал в фаре, ибо кодблокс на ееепц тормозил, а ас4 была ущербна по самые гланды
0
Неужели FAR как редактор программного текста лучше чем та же AS4?
И какой серии был ежик? Мой из более поздних, производительность у него вполне приятная — в том числе тянет декодирование H264 Hi10P 720p. Проц — Atom N570.
0
ас4 была ущербна по самые гланды
Ещё один зажравшийся. Ваши проблемы.
0
Данный стереотип навязан нуждой много отлаживать. Работа с абстрагированием от железа предполагает больше работы с текстом. В свою очередь редакторы аля Эклипс допускают минимум глупых опечаток и ошибок. Что в сумме со знанием и опытом приводит к тому что математика (не работа с железом) введенная ручками из головы без копипастов в течении часа как правило работает сразу. Сложно себе такое представить, да?
+1
Вообще, много уничтожено за последние 20-50 лет.
Точнее, отмерло в ходе эволюции технологий. Как всегда, впрочем.
Создано мало.
Для вас — да. Стимпанк это всего лишь развлечение для узкого круга гиков.
+1
Точнее, отмерло в ходе эволюции технологий.
В ходе деградации общества.
Стимпанк это всего лишь развлечение для узкого круга гиков.
Стимпанк — это уродство. По отношению к технике это что-то потрохов и кишков развешанных по веткам.
0
В ходе деградации общества.
Предположим. Вам осталось доказать, что оно деградирует.
Стимпанк — это уродство. По отношению к технике это что-то потрохов и кишков развешанных по веткам.
Что вовсе не мешает вам ностальгировать именно по нему.
0
Это должны сделать разработчики МК.
На всех не угодишь.
Не выплюнуть железку по принципу «жрите как хотите», но и дать нормальные инструменты.
А они и дали. В отличие от атмела. То, что вам эти инструменты не нравятся — сугубо ваши личные проблемы.
+1
Ардуйня?
0
Не обязательно лезть в верилоги, чтобы увидеть, что в ассемблере не сумели даже соблюсти стабильный порядок источника и получателя.
Ардуйня?
0
Ардуйня?
Типа того. Если использовать собирательный Ардуйня для соплей и пофигизма.
0
Имеется ввиду вполне конкретный Arduino, построенный на православном AVR.
0
Что-то мы отвлеклись. Так что там с порядком источника и приёмника в камне на примере команд ST и LD? Ах, да. Ардуйня же!
0
Всё впорядке.
Заколебал со своей ардуйнёй.
0
Ага, всё в порядке. Просто АРМ как и Ардуйня «не сумели даже соблюсти стабильный порядок источника и получателя». На то они АРМ и Ардуйня же, да?
0
Что не нравится? Нормальный порядок следования операндов: «получатель, источник, дополнительные параметры». В нормальных процессорах включая AVR он строго соблюдается во всех инструкциях. В армах — всё как попало.
0
Даже в ST получатель идет после приемника? Да неужели? А вы точно открывали ссылки?
0
Да, в AVR во всех инструкциях порядок операндов нормальный. Мне не надо ссылки открывать, у мя постоянно распечатка лежит на столе.
-1
Посмотрел ссылки. Если ты про пример кода — он неправильный и не компилируется. И комменты неправильные.
0
В армах — всё как попало.
Еще раз: армы тут при чем? И о каком конкретно компиляторе идет речь? А то есть как минимум две популярные концепции — intel-like и gnu-like. И, замечу, для многих архитектур есть оба варианта.
+1
и gnu-like
Это то, что раньше называлось motorola-like?
0
Или Моторола ли на каком-то другом поприще отличилась, а это вроде синтаксис AT&T… Забывать уже начал >_<
0
Да их как только не называли. В любом случае, есть два подхода и обоим сто лет в обед.
0
Это то, что раньше называлось motorola-like?
Угу.
0
Насколько я знаю, для армов есть только один синтаксис. Не соответствует ни одному из перечисленных.
Синтаксис AT&T (gnu-like) — это отдельный тихий ужас и дикий кошмар, но он хотя бы регулярен.
Еще раз: армы тут при чем?
При том, что это их ассемблер от их разработчиков.
0
Притензии к архетектуре ARM из-за претензий к программистам у вас есть. Почему тогда нет притензий к АВР из-за притензий к программистам Ардуино?
0
Притензии к архетектуре ARM из-за претензий к программистам у вас есть.
Не помню такого. Надо полагать выдаёшь желаемое за действительное.
0
Ассемблер пишут программисты. Ассемблер != архетиктура/внутренняя реализация/перефирия. Правда кроме вас. У вас это одно и то же.
0
Причём здесь ассемблер как программа? Я говорил об ассемблерном синтаксисе от разработчиков арма.
Документация и соглашения — это тоже часть архитектуры.
0
Я говорил об ассемблерном синтаксисе от разработчиков арма.
Который и определяется ассемблером как программой.
Документация и соглашения — это тоже часть архитектуры.
Для x86 отродясь был только интеловский синтаксис. Но потом появился gcc/gas и синтаксисов стало два.
+1
Синтаксис определяется соглашениями и документацией.

Для x86 отродясь был только интеловский синтаксис.
x86 — очень приятный процессор, и ассемблер приятный. Есть довольно много синтаксисов. Самый классный — FASM.
0
Синтаксис определяется соглашениями и документацией.
С какого перепугу? Синтаксис всегда определяется компилятором (иногда даже конкретной версией компилятора), а вовсе не тем, что написано в документации. Они в большинстве случаев совпадают, это да, но если даже отличаются, то решающее слово именно за компилятором. Именно он компилирует вашу программу, а не соглашения и документация.
x86 — очень приятный процессор
Редкое в своем уродстве убогое дерьмо, а не процессор. И интеловский (точнее, MS-овский) ассемблер такой же.

P.S. у интела были действительно интересные процессоры, но х86 не один из них.
+1
Какая разница, совпадает или нет? Я говорю именно про то, что написано в документации.

Редкое в своем уродстве убогое дерьмо, а не процессор.
Ну да, под него даже писать можно. Срочно уничтожить.
0
Какая разница, совпадает или нет? Я говорю именно про то, что написано в документации.
Вам шашечки или ехать?
Ну да, под него даже писать можно.
Писать можно под что угодно. Я когда-то даже под микропроцессорные секции микропрограммы писал. Что с того, что «можно писать»? Хорошим от этого х86 не становится. В этой бочке дерьма из сколько-нибудь хорошего, разве что, x86_64, да и то это не заслуга интела, это AMD приложился.
0
Вам шашечки или ехать?
Мне нормальный процессор.

В этой бочке дерьма из сколько-нибудь хорошего, разве что, x86_64, да и то это не заслуга интела, это AMD приложился.
Я теперь понял. В вашей параллельной вселенной всё строго наоборот.

В нашей как раз x86_64 — бочка дерьма, кое как прилепленная.
0
В вашей параллельной вселенной всё строго наоборот.
Ну моя-то основная, это ваша где-то оторвана от реалий бегает с голым задом.
В нашей как раз x86_64 — бочка дерьма, кое как прилепленная.
В этот раз даже не буду вам предлагать обосновать. И так видно, что вы в низкоуровневом программировании для x86 ни в зуб ногой.
0
Писать можно под что угодно. Я когда-то даже под микропроцессорные секции микропрограммы писал.
А кстати, что это и чем оно так выделяется в плане программирования?
0
Микропроцессорные секции это, по сути, нарезанные на кусочки по 4/8 бит АЛУ, шинные формирователи и прочие причандалы из которых путем каскадирования и добавления нужных частей можно было собрать процессор с вполне приличными характеристиками (как для своего времени, конечно). Единственный минус — процессор займет плату, а не один чип. Управляется это все путем выдачи пачки управляющих сигналов из ПЗУ (или ОЗУ) каждый такт на все нужные входы управления. По сути — одним многобитным словом, которое называется микрокомандой. Соответственно, если процессор реализует какой-то набор команд, то каждая из них реализуется как набор микрокоманд (микропрограмма). Вобщем такое себе very low level programming.
Да, в совке был аналог вот этой популярной серии чипов. Если мне память не изменяет, то они шли в виде серии 1804.
0
P.S. у интела были действительно интересные процессоры, но х86 не один из них.
Например?
0
iAXP432, i860, например
0
Даже слышу-то впервые. Расскажи вкратце, что это и чем интересно.
+1
i860 это риск, довольно быстрый для своего времени. К нему делали еще всякие математические сопроцессоры, что в итоге давало весьма и весьма высокую производительность. В целом все довольно стандартно. Но отсутствие необходимости делать его с чем-либо совместимым давало вполне нормальную и перспективную архитектуру.
iAXP 432 это довольно уникальный зверь 81-го года выпуска. В железе: стековая архитектура, поддержка ОО языков, поддержка сборки мусора, поддержка многозадачности (если не ошибаюсь кольца защиты в стиле 386-го впервые появились именно в нем), тегирование областей памяти и еще куча каких-то прибамбасов, которые я по молодости даже не вкурил. Были там и свои грабли, конечно, но в целом весьма интересная штука. Журнал Electronics его называл «минимейнфреймом» и, глядя на список прибамбасов я склонен верить в такое определение.
0
iAXP 432 делался под язык Ada. И, насколько я помню, это был проект для МО США.
0
Самый классный — FASM
… только это не интеловский ассемблер (в плане разработки).
И, О УЖАС! Под х86 есть ассемблер с синтаксисом AT&T.
0
… только это не интеловский ассемблер (в плане разработки).
Ну и что?
И, О УЖАС! Под х86 есть ассемблер с синтаксисом AT&T.
Хуже, что находятся те, кто это говно юзает и показывает.
0
Эксгибиционист прям!
0
Насколько я знаю, для армов есть только один синтаксис.
Нет, конечно. Как минимум есть gas, который, как не сложно догадаться, gnu-like.
При том, что это их ассемблер от их разработчиков.
Ну и что? Не нравится — напишите свой.
+1
Нет, конечно. Как минимум есть gas, который, как не сложно догадаться, gnu-like.
Мне это не кажется очевидным. Для AVR точно не используется эта моторолловская гадость, для ARM вроде тоже.
Ну и что? Не нравится — напишите свой.
Зачем? Невозможно отполировать говно.
0
Мне это не кажется очевидным.
Насколько я в курсе, gas имеет одинаковый синтаксис для всех архитектур.
Зачем? Невозможно отполировать говно.
Это же не мешает вам пытаться отполировать авр.

P.S. забавно, но из вашего списка «недостатков» арма остался только «неправильный» синтаксис асма, да и то это ваша вкусовщина, а не недостаток.
+1
забавно, но из вашего списка «недостатков» арма остался только «неправильный» синтаксис асма
Ну вроде только с прерываниями разобрались — ок, на 72 МГц кортекс может догнать AVR. Выводы, впрочем, от этого не меняются.
С остальным, надо полагать, согласны. Раз не возражаете.
0
Ага. В бесполезном прерывании АРМ действительно нуждается в большей скорости.
0
Он в целом бесполезен.
0
Он в целом бесполезен.
Да, ваш вариант обработчика в целом бесполезен.
0
Ну вроде только с прерываниями разобрались — ок, на 72 МГц кортекс может догнать AVR.
Вы снова передергиваете и перевираете. На 16МГц авр в пустом прерывании едва дотягивается до младших кортексов на 48МГц. Все, что чуть быстрее по тактовой или что-либо делает на кортексе быстрее.
Выводы, впрочем, от этого не меняются.
А с чего бы им меняться? Авр-ки как были дерьмом мамонта, так им и остались.
С остальным, надо полагать, согласны. Раз не возражаете.
Не возражаю вовсе не значит, что согласен. Вы еще с этими пунктами не разобрались.
0
Вы еще с этими пунктами не разобрались.
Это вы ничего путного не возразили.
0
Это вы ничего путного не возразили.
Пока не было на что возражать, вы даже свои слова обосновать не можете без передергивания.
0
в реальном приложении прерывания занимают минимум времени. В математике эти мегагерцы уже дадут уже порядок производительности. А более-менее приличное железо типа полноцветного дисплея или флеш-памяти в мегабайты размером (ге говоря уже о usb-flash) прикручиваются к авр только с бубном и с производительностью колесного парохода
0
в реальном приложении прерывания занимают минимум времени.
Чего это? Бывают вообще программы из одних прерываний, с пустым главным циклом.
0
Чего это? Бывают вообще программы из одних прерываний, с пустым главным циклом.
Вполне. А все остальное время работает периферия.
+1
Между прочим, отличнейшие команды с поддержкой предекремента/постинкремента.
0
Исключительно по соответствию его вкусам, очевидно же.
+3
Кто бы говорил.
0
Весьма годные Plush-6A делали на восьмежках. Впрочем, сейчас перешли на 8051, где нагрузочная способность ещё лучше.
Китайские ESC'и, конечно, образец того, как надо правильно управлять мосфетами с МК… Кстати, двухамперная у меня уже разок горела, она на том же C8051F330.

Ну и стоит еще посчитать, какие там токи затвора и что говорит даташит по поводу подобной нагрузки на выводы.
0
Плюшки вроде сделаны хорошо. Быстро откликаются, работают стабильно. Едва нагреваются, хоть и затенены от корпусом. Почему бы и не взять за пример хорошо сделанного девайса?
0
Ну хотя бы потому, что прямое соединение затворов и GPIO вызывает у меня сомнения на предмет соблюдения AMR. Что до нагрева — ну так 6А, с хрена ли греться? Если МК перегружен по выводам, греться он не будет, но вылететь вполне может.
ESC'а на 2А тоже не греется обычно, кроме того случая, когда что-то пошло не так и один ключ выгорел.
+1
Знания ассемблера нужны. Точнее его понимание. Компиляторы не идеальны (особенно бесплатные), так что бдить за ними приходится. Не более того. Почему я (и не только) считаю разработку на ассемблеое смешной? Все же очевидно. Берем бесплатную производительность в пол порядка — порядок выше на низком уровне и теряем процентов пятдесят на издержках высокоуровневых языков. В остатке имеем ну никак не меньшую производительность конечного девайса и в разы меньшие затраты на разработку. Выигрыш очевиден.
Выбор Асм или Си напоминает спор спортсмена и профессионального водителя. Взять дикий корч который сделан для того, чтоб на треке (читать как намек на синтетические условия) показать возможности авто и поразвлечь водителя. и взять автомобиль люкс класса сделанный для того чтоб довезти задницу важной шишки с комфортом до нужного места не заставляя водителя напрягаться.

Дальше текст немного не в тему этого комментария но пусть будет здесь. Периферия современных армов на много более гибкая, в сравнении с теми же авр. Да, периферии на первый взгляд меньше. Но я не назовк это минусом. В авр есть всякие плюшки (например кривенький дифамп в ацп) которые в 99 процентах валяются мертвым грузом. Я лучше поставлю мелкий операционник там где это нужно, чем буду платить за фичу там, где она ненужна. Прикопались значит тут к прерываниям, вставлю и свои пять копеек против авр. Господи. Как же удобно, когда я практически на любую ногу могу повесить внешнее прерывание… почему в идеальной авр до такого не додумались?
0
почему в идеальной авр до такого не додумались?
Тссс… не покушайтесь на святое :)
+1
Господи. Как же удобно, когда я практически на любую ногу могу повесить внешнее прерывание… почему в идеальной авр до такого не додумались?
А PCINT — не оно? Не во всех камнях есть, правда.
0
хм. Честно не встречал.
0
и теряем процентов пятдесят на издержках высокоуровневых языков
50% — мало. У меня было до 4 раз.
и в разы меньшие затраты на разработку
Опять эти торгашеские рассуждения. Из-за подобного практически нет хорошо сделанных вещей сейчас.
например кривенький дифамп в ацп
В каком месте кривенький?
которые в 99 процентах валяются мертвым грузом
Что, аналоговые датчики и другие источники сигнала отменили?
Это в СТМ — мёртвый груз. В AVR всё по делу.
почему в идеальной авр до такого не додумались?
Потому что разумная достаточность.
0
50% — мало. У меня было до 4 раз.
В большинстве случаев разница если и будет, то в единицы процентов, но никак не в разы.
Опять эти торгашеские рассуждения. Из-за подобного практически нет хорошо сделанных вещей сейчас.
Это не торгашеские рассуждения, а разумные.
Что, аналоговые датчики и другие источники сигнала отменили?
Не отменили, но компаратор нужен достаточно редко.
Это в СТМ — мёртвый груз. В AVR всё по делу.
Точнее наоборот.
Потому что разумная достаточность.
Ага, вот как в вашем словаре называется кривой костыль…
0
50% — мало. У меня было до 4 раз.
неумеючи лопатой тоже можно ногу отрубить
Опять эти торгашеские рассуждения. Из-за подобного практически нет хорошо сделанных вещей сейчас.
касательно этого момента есть два метода снижения себестоимости продукта. Первый — дешевая рабочая сила и сокращение сроков разработки. Оба метода губительны для качества, однако использование низкоуровневого программирования это осознанное увеличение сроков разработки ведущее к повышению себестоимости.
Что, аналоговые датчики и другие источники сигнала отменили?
Далеко не в каждом проекте они есть. Тем более далеко не каждый датчик требует усилителя.
Это в СТМ — мёртвый груз
например какой?
Потому что разумная достаточность.
неразумные ограничения по трассировке
0
Мы ведь пишем «a = 2», а не «2 = a»
MOV A, B / MOV B, A — поместить в A, B или поместить A в B — просто учимся правильно читать, а не «как привыкли». Вы же для процессора пишете, а не для нас. А для процессора логичнее сначала взять 2, а потом поместить его в а. И, например, я в алгоритмах часто пишу «2 -> a» ввиду того, что думаю не набором команд, а думаю над алгоритмом.
просто взяли и удалили все упоминания с сайта.
Абсолютно неудачный пример. Там контора топикстартера сами себе ЗБ.
+3
просто учимся правильно читать, а не «как привыкли»
Можете читать и писать как угодно. Хоть задом наперёд, хоть по спирали, хоть ещё каким рандомным паттерном. И сколько угодно говорить что это «нормальные альтернативы». А я буду называть нормальным только тот язык, где lvalue располагается слева, а rvalue — справа.

Абсолютно неудачный пример.
Документацию выпилили? Да. Никаких рекомендаций не оставили? Тоже да.
Буратины — да. Связались с СТМ.
0
А я буду называть нормальным только тот язык, где lvalue располагается слева, а rvalue — справа.
Гениально! Нет. Шедеврально!
You've made my day.
+1
А я буду называть нормальным только тот язык, где lvalue располагается слева, а rvalue — справа.
Ты, правда, забыл такую мелочь как то, что это сишные понятия и к ассемблеру они не применимы.
Ну и сама по себе запись присваивания как «a=10» привычна, но не слишком-то логична.
+2
ARM
Убогий, кривая архитектура, кривой набор команд, кривой ассемблер, при этом расползается повсюду как чума.
Вот здесь я не согласен со столь уважаемым мной нашим православным самородком Лайфловером.

Архитектура PDP11 была лучше x86, MIPS опрятнее чем ARM. И что? И какая разница, и какая есть историческая альтернатива? ARM — самое обычное, унылое и изначально примитивное RISC ядро. Но зато какие огромные плюсы: «одна страна архитектура — один народ MCU_Core — один фюрер объектный код» (для «полной победы коммунизма» осталось только стандартизировать работу с периферией).

Тебе не кажется, что в итоге (из-за такого отношения к ARM) тебя могут просто обойти на повороте другие люди? В конечном смысле все решает не архитектура, а инженерное искусство, в т.ч. умение правильно и красиво написать код. На ARM-е нельзя написать правильного (с твоей точки зрения) и полезного кода?
0
И как из этого всего следует, что нельзя называть убожество убожеством?
0
Проблема AVR в настоящее время не в том, что он плохой/устаревший, а в том, что он 8-битный. Успех пришел к ARM не из-за того, что он гармоничный/ладно_спроектированный e.t.c, а в том, что он был 32-х битный и простой/примитивный по внутренней архитектуре, т.е. с малым кол-вом транзисторов, а значит очень малопотребляющий по сравнению с имеющимися альтернативами.

Какой тогда 32-битный MCU ты лично УВАЖАЕШЬ? Т.е. какая альтернатива ARM-у с твоей точки зрения?
-1
sarcasm_on();
Зачем нужны 32-битные то? Есть же очень удобные и прекрасные межки на все случае жизни с приятным и продуманным ассемблером. Все остальное убожество.
sarcasm_off();
+2
Не ассемблером, а ассемблером, архитектурой, периферией etc.
Межки я хорошо знаю. Есть ещё 8051, PIC, MSP430. Достаточно достойные и приличные архитектуры.
0
Межки я хорошо знаю.
и всё. на этом их достоинства заканчиваются.
+2
Проблема AVR в настоящее время не в том, что он плохой/устаревший, а в том, что он 8-битный.
Ну-ну. А я основной вой слышу по поводу «фарша мало», «дорого» (аж на 15 рублей дороже, ужос!!!) и т.д.

Какой тогда 32-битный MCU ты лично УВАЖАЕШЬ?
Не знаю что ещё есть 32-битного кроме кортиков. По крайней мере доступного/распространённого — точно ничего.

Но вот такое дело. Скажем, некоторое время назад пиарили опенсорс проект — SDR на STM32. И мне стало интересно как он считает. Заглянул и увидел что-то вроде:

int32_t c = (int32_t)((int64_t)a * b >> 32);
Эм. А как же этот ваш SMULL?

Это я к тому, что может не так и нужны эти 32 бита, если пишется такой расточительный код.
0
Не знаю что ещё есть 32-битного кроме кортиков.
Может быть тебе из-за твоего «дурного» и пассионарного характера стоит обратить тогда свое внимание/симпатии к MIPS (благодаря PIC32 он еще не сдох) — вполне православный, простой и даже true академичный проц :D

P/S В последней (6-й) редакции книжки «Архитектура компьютера» МЕГА-деда Эндрю Таненбаума он подробно рассматривает 3 архитектуры:
1/ x86 (почему — всем и так понятно)
2/ ARM (ну ты понел почему)
3/ AVR (раньше была 8051, но он видимо выбрал AVR не из-за описанных тобой всех преимуществ и удобства архитектуры, а из-за такого простого слова, как «Arduino» :DDDD
+1
А я основной вой слышу по поводу «фарша мало», «дорого» (аж на 15 рублей дороже, ужос!!!) и т.д.

Так ведь правильно воют то. Взять тот же STM8. Например, STM8L152. Можно ли найти AVR ему на достойную замену? Чтобы за 50р были схожие возможности по созданию микропотребляющих устройств, LCD контроллер, ЦАП, DMA? А если такой мк есть у ATMEL, то может быть и дешевые классные отладочные платы под него в наличии? Вместе со встроенным программатором/отладчиком? Ну ладно если вдруг нет плат, то может программатор/отладчик можно купить в китае за 200-300р, который позволит работать со ВСЕМИ моделями данной архитектуры?
+2
STM8? Крайне кривое и убогое ядро. Пожалуй, ещё отвратительней армов. Не знаю, зачем такому искать «замену».
Типичный случай бесплатного сыра в мышеловке.
0
Как ни странно, но именно это я и ожидал услышать)
+3
int32_t c = (int32_t)((int64_t)a * b >> 32);
Интересней, что получается из этого кода на выходе оптимизатора.
+3
Интересней, что получается из этого кода на выходе оптимизатора.
Хм, ну ладно, армовский gcc оказался умнее чем я думал:-[
0
Скорее автор кода хорошо знает на чем пишет и как именно объяснить компилятору, что от него требуется.
+2
Ну может быть. Но вот межкиному gcc это не объяснишь. И M$VC в общем случае — тоже (в последних версиях появился интринсик, да).
0
Может просто вы не можете объяснить? Но это ведь совсем не проблема компилятора/асма/архитектуры/етц.
+2
А ничего, что простая и удобная сишечка (которой вы не знаете, как мы раньше выяснили ;) ) не знает такого слова как SMULL?
0
(которой вы не знаете, как мы раньше выяснили ;)
А напомни, когда это было?
0
Один MCU_Core

Тут вы перегнули. Прям таки один… У них дофинга архитектур и куча разных наборов инструкций.

осталось только стандартизировать работу с периферией

Зачем? Вам нужен переносимый бинарный код между МК?
Это наложит дополнительные ограничения. Потом вы захотите обеспечить обратную совместимость :)

Получится как с Intel, который до сих пор вынужден эмулировать режимы обратной совместимости, который особо никому не нужны.
+1
Заниматься литературщиной бывает весьма тяжко — трудно перефразировать известное высказывание в разрезе совсем другой предметной области. Но под «Один MCU_Core» надо понимать видимо «Одна экосистема MCU_Cores», т.к. рифмуется с понятием «Один народ», т.е. совокупность в чем-то родственных этнически индивидов. Имелось в виду общее в ARM MCU (в отличии от периферии конкретного производителя), т.е. то, что стандартизировано в CMSIS.
0
Заниматься литературщиной бывает весьма тяжко — трудно перефразировать известное высказывание в разрезе совсем другой предметной области

Да, та же фигня :) Я Вам тоже хотел ответить перефразировав «Свобода, равенство, братство», но не как-то не рифмовалось. Поэтому, как истинный представитель украинской фашистской хунты, я просто встал и бросил зигу :)
0
Убогий, кривая архитектура, кривой набор команд, кривой ассемблер
Прямо про вашу любимую межку написано. Вы только забыли добавить, что и вся столь ненависная вам ардуйня на тех же авр-ках.
+2
Ардуйня — это типичный ООП. Всё что не надо для примитивной и тормозной ардуйни, заметается под ковёр.
0
Ардуйня — это типичный ООП.
Вот только там OOП как такового нет (с натяжкой местами в библиотеках, разве что). А так — типичный такой девборд с библиотекой (кстати, вполне приличной) и (местами) с загрузчиком. Впрочем да, я помню, что все, что вам не нравится — ардуйня и/или ООП :)
+1
Впрочем да, я помню, что все, что вам не нравится — ардуйня и/или ООП :)
Да еще и на арме!
+1
Ардуйня — это типичный ООП.

Коллега, если не секрет, а за что конкретно вы так не любите ARM ООП (и STM32 С++ в частности)?

:) Это шутка, не нужно отвечать на этот вопрос, я догадываюсь, что вы ответите.

Знаете, я посему-то решил, что вы за последнее время ка-то повзрослели, стали более рационально смотреть на вещи. Но я ошибся, все равно вся дискуссия (если это модно называть дискуссией) свелась к вашей старой идее – «Есть два мнения: одно мое, втрое неправильное», «Все быдлокодеры, а я — д’Артаньян»

Интересно будет вернутся к этой теме через несколько лет. Если вы не заметили, то Меги уже дано практически не развиваются (что можно понять, ибо их архитектура плохо масштабируется, ARV32 так и не взлетел). Мне вот интересно, вы все-таки пересмотрите свое мнение, или будете «последним из AVRшиков».
+3
Пока что оно скорее прогрессирует. Подождем…
+1
стали более рационально смотреть на вещи
Вещи стали ещё хуже. С чего бы мне смотреть на них более «рационально»?

Интересно будет вернутся к этой теме через несколько лет.
Весьма вероятно впрочем, что за несколько лет капиталисты со столь любимыми вами торгашескими рассуждениями уничтожат интернет и некуда будет возвращаться.
0
С чего бы мне смотреть на них более «рационально»?
Хотя бы с того, что это всего лишь вещи. Или с того, что большинству представителей сильного пола свойственно рационально-логическое мышление. Наконец, тут, преимущественно, общаются люди с техническими склонностями и/или образованием и мышлением, у которых рационально-логическое мышление развито даже больше, чем в среднем у таким типом мышления. Ваша же аргументация мне сильно напоминает поведение знакомых дам, которые руководствуются сугубо эмоциями и любые нестыковки между логическими и эмоциональными результатами объясняют фразой «ну я же девочка» (вероятно предполагая, что это должно все объяснить).

Весьма вероятно впрочем, что за несколько лет капиталисты со столь любимыми вами торгашескими рассуждениями уничтожат интернет и некуда будет возвращаться.
Благодаря «торгашеским рассуждениям» интернет появился, доступ к нему постоянно дешевеет и расширяется. Замечу, что я совершенно согласен с тем, что это происходит именно из «торгашеских рассуждений». Вот только результат, почему-то, принципиально отличается от того, что видится вам.
+2
Есть знакомые электронщики далекие от программирования, которые считают что, например, генератор шим разумнее собрать на рассыпухе. Фигня что дороже, громоздко и ниже надежность чем на копеечном контроллере с программой в десяток строк. Просто они так умеют и им так пороще.
+1
Генератор на рассыпухе можно «починить». Генератор на МК только новый собрать. И, поскольку, в основном все надо делать «в полевых условия» и «прямо вчера», выбирают первый вариант.
+1
вероятность выхода из строя того что «можно починить» выше чем у того что «новый собрать» банально из-за количества деталей. да и «новый собрать» это заменить контроллер (одна деталь), против поиска и замены неисправной детали в дискретном приборе.
+3
Вижу, не приходилось бывать в настоящем «в поле».
+1
приходилось. И на полузаброшенных заводах куда пару часов по колено в снегу идти, и на качалках посреди поля в паре часов езды от цивилизации и на режимном заводе, одним из заборов которого является граница узбекистана с таджикистаном. сути это не меняет. Или у тебя есть все, что бы починить девайс, или у тебя нет ничего. В 90 процентах проводится блочная замена и максимум потребуется пара отверок.
+3
Поддержу коллегу xar .

Я конечно понимаю, что термин «в поле» весьма условен.

Но, сугубо ИМХО, в современных реалиях, все что производится даже в мелкой партии проектируется под блочную замену. Мне довелось работать в компании, которая занималась электроникой для автоматов самообслуживания, дык вот для «ремонтников», которые мотались по объектам был строгий запрет на попытку что-то чинить в схемотехнике – только замена блоков. (Кстати, после работы в этой компании я никогда не пользуюсь кофейными автоматами самообслуживания, и вам не советую :)

С другой стороны, у меня есть знакомые, которые профилируются на изготовлении специализированных устройств (зачастую в единичном экземпляре). Там, естественно, ни о какой блочной замене речь не идет, приходится именно ремонтировать на месте. Но от них я тоже не слышал идей «сделать на куче дискретных элементов, чтобы проще было ремонтировать». МК сокращает количество деталей, что, если я правильно помню теорию надежности – повышает эту самую надежность. Плюс, МК — это универсальная вещь, помимо формирования ШИМ он вам «по любому» пригодится и упростит светотехнику.
+1
Кстати, после работы в этой компании я никогда не пользуюсь кофейными автоматами самообслуживания, и вам не советую :)
Почему?
0
Почему?

Есть такое выражение «Если вам нравится колбаса или политика, то вам лучше не знать как делается то и другое»

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

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

Один из владельцев сети автоматов (который, на редкость, педантично относился к санитарии) заставлял сервисников прилагать к отчету об обслуживании фотографию разобранных и очищенных узлов на фоне свежей газеты (газета выполняла функцию фиксации времени), но даже там его пытались всячески наколоть…

Я не помню каких-то уж совсем «страшилок» уровня «дохлая крыса в шнеке подачи», но насмотревшись на это изнутри, на кофе из автомата меня не тянет…
+1
то вам лучше не знать как делается
Да уж, действительно :D
0
«В поле» случаи очень разные бывают. И дискретная схема может запросто оказаться «чинибельнее». Просто не надо всё возводить в абсолют – чай, не сикхи и железный гребень под погоном не носим.

ps. Поясню, что такое «в поле» в моем понимании и опыте: 300-700 км от «центра цивилизации».
0
ну я собственно о том же. Когда под рукой нет магазина все будет зависеть от снаряженности ремонтника. У меня было три походных набора. 5кг для выезда на ввод в эксплуатацию, профилактику или замену крупных узлов (ноутбук и набор слесаря-сантехника), при этом запчасть или паппарат отправлялись отдельно. 15кг рюкзак это уже набор мелких расходников, один-два подозреваемых узла и больший набор инструмента, включая газовый паяльник, кусачки, изоленту и моток провода для того что бы, например припаять оторванный датчик. Последний вариант 5+25кг (авиационный) применялся всего четыре раза, два из них за границей, когда по какой либо причине аппарат доставить к нам дорого или невозможно. Тут лежит полный набор электроники достаточный для сборки еще полутора аппаратов. И лишь один раз я касался паяльником платы для замены заранен известной бракованной детали (всплыла левая серия когда товар уже был отправлен к покупателю). Такую политику выездного ремонта согласовывал сам лично. Основная причина — ремонт на выезде малоэффективен в связи с тем что нет комфортных условий для работы, лабораторного оборудования и невозможно иметь полную номенклатуру комплектующих, которые могут понадобиться. В следствии всего этого ремонт на выезде долог (если вообще возможен) и соответственно дорог (специалист должен где то жить и получать командировочные).
Исключением является военка и подобные отрасли, но это совершенно другой разговор, как и любая другая тема в этих областях.
+1
Серьезный подход, уважаю!
0
был холост, поглядел страну и ближнее зарубежье. нынче семья и оседлый образ жизни %) ностальгирую иногда
+1
Интересно будет вернутся к этой теме через несколько лет.
А смысл? Он и несколько лет назад рассуждал этими самыми штампами.
0
Ну, людям свойственно взрослеть, иногда при этом меняются взгляды. Некоторые из рассуждений Lifelover'а лет 10 назад мне были весьма близки)
+1
Угу. Начинается все с «нафига все так сложно, если можно просто?». Потом появляется любопытство пополам с желанием сделать «просто и круто». Обычно где-то в этом районе начинают появляться знания и понимание того, что «а слона-то я и не приметил».
Те, кто не доходит до второго этапа, как правило, зацикливаются на «все становится только хуже».
+1
Угу. Начинается все с «нафига все так сложно, если можно просто?». Потом появляется любопытство пополам с желанием сделать «просто и круто». Обычно где-то в этом районе начинают появляться знания и понимание того, что «а слона-то я и не приметил».

Это просто брюзжание_старого_неудачника, т.е. человека, который в молодости по призванию учился на то, чтобы разрабатывать самый лучший СОВЕТСКИЙ микропроцессор/компьютер, но волею судеб просидевшего все 90-е и 2000-е на PC вначале на MS-DOS, а затем на OS/2 (говнокодируя и обслуживая офисный планктон — бухов/барыжный_учет/банковское ПО), в 2008-2009-м срочно пересевшего на Линух, а в 2011-2012-м вернувшегося к любимому делу юности, но уже не более чем, как старикан-любитель :DDDD

У 95-99% бывших совков жизнь сложилась аналогично (пришлось добывать бабло или жратву делами отличными от призвания), но я, пережив демократическо-либеральный дурдом, все же очень рад за таких молодых спецов, как Лайфловер.
0
Это просто брюзжание_старого_неудачника,
Именно так я воспринимаю ваши посты — как брюзжание старого совкового неудачника с закосом под кгб-шника. Впрочем, кгб-шник из вас такой же хреновый.

P.S. у меня, в отличие от вас, далеко не одно любимое дело, да и до старикана мне ну очень далеко.
-1

у меня… далеко не одно любимое дело, да и до старикана мне ну очень далеко.
Ты очень много говоришь: я-Я-Я-Я! А вот я был в середине пятого десятка(как и ты ЩАС) и уже был всемирно известным ученым, когда меня разбил инсульт, но и с половиной мозга я сделал еще ряд величайших открытий. Но ты то — не Луи Пастер :DDDDD
0
Ты очень много говоришь: я-Я-Я-Я!
А вы хотите, что бы я как и вы говорил «ты-ты-ты»? Так обсуждение вашей персоны мне совершенно не интересно, а по делу вы ничего не пишете.
Но ты то — не Луи Пастер :DDDDD
Конечно. И не стремлюсь им быть (как и быть кем-либо еще). Предпочитаю оставаться самим собой.
0
В этом топике вообще почти ничего нет по делу — одна злобная грызня с Лайфловером, которую (как и обычно) разжег здесь ты (я перешел здесь на «ты», как это делает чисто для удобства VGA, когда разговаривает с кем-то давно знакомым). У меня всего 7 постов здесь «не по делу», у тебя — 56, и все они «не по делу». И кто получается захламляет топики (в том числе и полезные) вот таким жидким, нудно-монотонным, пастообразным спамом с оттенком злобы и менторского самолюбования, который даже не несет какой-то мало-мальски литературной приятности или эстетичности?
0
В этом топике вообще почти ничего нет по делу
Во всяком случае обсуждались технические вопросы, без перехода на обсуждение личностей. Тебе же нетерпелось пообсуждать меня. Как обычно.
одна злобная грызня с Лайфловером
Злобная грызня это по твоей части. И предыдущий пост тому яркий пример.
И кто получается захламляет топики (в том числе и полезные) вот таким жидким, нудно-монотонным, пастообразным спамом с оттенком злобы и менторского самолюбования, который даже не несет какой-то мало-мальски литературной приятности или эстетичности?
Ты, как обычно. Даже с картинками, тоже как обычно.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.